2011-09-21 43 views
1

我有兩張桌子。一個叫「成員」,另一個叫「家」(應該是家庭,但我吸英文)。那些關係很多(即幾個成員屬於一個家庭)。這些通過members.homefk和homes.Id在sqlite3中查找沒有關係的行?

連接在一起現在,我怎麼能找到不屬於任何成員的家?我想要這個房子的清潔目的。

回答

4
SELECT homes.* 
FROM homes 
LEFT JOIN members ON (members.home_id = home.id) 
WHERE members.home_id IS NULL 
+0

工作很好。非常感謝! :-) –

+0

爲什麼你不接受py按左邊的勾形輪廓? – glglgl

-1

使用子查詢返回所有homefk值,然後從家其中id沒有在子查詢,

在Oracle看起來像

SELECT選擇h.id 從家中^ h WH.id NOT IN( SELECT DISTINCT(m.homefk) FROM members m)

+0

我上面使用了Johans解決方案。但非常感謝您的時間。 –

+0

如果您有數千個擁有更多'會員'的'家庭'來首先選擇所有會員,然後選擇所有ID不在所選會員中的家庭,那麼這種方式貴了點。 –