我有兩張桌子。一個叫「成員」,另一個叫「家」(應該是家庭,但我吸英文)。那些關係很多(即幾個成員屬於一個家庭)。這些通過members.homefk和homes.Id在sqlite3中查找沒有關係的行?
連接在一起現在,我怎麼能找到不屬於任何成員的家?我想要這個房子的清潔目的。
我有兩張桌子。一個叫「成員」,另一個叫「家」(應該是家庭,但我吸英文)。那些關係很多(即幾個成員屬於一個家庭)。這些通過members.homefk和homes.Id在sqlite3中查找沒有關係的行?
連接在一起現在,我怎麼能找到不屬於任何成員的家?我想要這個房子的清潔目的。
SELECT homes.*
FROM homes
LEFT JOIN members ON (members.home_id = home.id)
WHERE members.home_id IS NULL
使用子查詢返回所有homefk值,然後從家其中id沒有在子查詢,
在Oracle看起來像
SELECT選擇h.id 從家中^ h WH.id NOT IN( SELECT DISTINCT(m.homefk) FROM members m)
我上面使用了Johans解決方案。但非常感謝您的時間。 –
如果您有數千個擁有更多'會員'的'家庭'來首先選擇所有會員,然後選擇所有ID不在所選會員中的家庭,那麼這種方式貴了點。 –
工作很好。非常感謝! :-) –
爲什麼你不接受py按左邊的勾形輪廓? – glglgl