John McKown wrote...
On Thu, Jan 23, 2014 at 1:11 PM, jose isaias cabrera <[email protected]>wrote:Greetings! I have these tables A and B: A id,projid,a,b 1,1,'a','h' 2,2,'b','i' 3,3,'c','j' 4,4,'d','k' 5,5,'e','l' ... ... B id,projid,ptask 101,1,'a' 102,2,'b' 103,3,'a' 104,4,'b' 105,5,'a' ... ... When I do this SELECT, SELECT * FROM A WHERE projid = (SELECT projid FROM B WHERE ptask = 'a'); This only returns one record (record 1) where it should return all therecords with ptask = 'a'. Will someone point me to the right syntax to getthis correct? Thanks for the help. joséNo, it is working properly. The reason is that the SELECT from the B table returns two values. The WHERE clause in the outer SELECT from the A table only tests the projid from the first value returned, not "either" valuebeing equal. At Igor said, you should use the IN phrase instead of an equalsign. That is: SELECT * FROM A WHERE projid IN (SELECT projid FROM B WHERE ptask = 'a'); = is for comparing a single value. IN is used for comparing against a set of values.
Thanks, Archie. :-)
-- Wasn't there something about a PASCAL programmer knowing the value of everything and the Wirth of nothing? Maranatha! <>< John McKown
Maranatha indeed! _______________________________________________ sqlite-users mailing list [email protected] http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

