所以我有这三个表:SQL NOT IN(不知道谁抽烟)
Persons {id, name}
Knows {A_id, B_id} - (Person A knows Person B)
Smoking {id} - (id -> Persons{id})
Persons:
{1, "Tim"}
{2, "Kim"}
{3, "Jim"}
{4, "Rim"}
Knows:
{1, 2}
{1, 3}
{3, 2}
{3, 4}
Smoking:
{3}
我需要{3,“吉姆”}归还,因为他不知道谁抽烟({1,“蒂姆”}知道吉姆谁吸烟,所以他出去了)
我尝试此查询:
SELECT P.name
FROM Persons P, Knows K
WHERE K.A_id = P.id AND K.B_id NOT IN (SELECT id FROM Smokes)
,但它仍然会返回“添”即使他知道2人,其中只有1抽烟。我只需要那些每个“朋友”都不吸烟的人。帮助!
并没有真正回答你的问题,但在你的Persons表中有'Smokes'列会更有意义:) – Codeman 2015-03-02 23:40:37