我有一個Person表和一個Place表,其中包含Person,Type和PhoneNumber字段。我想查找Person表中沒有家庭電話號碼的所有條目。問題是,他們可能沒有家中的桌子,或者他們可能有一個家,但沒有家庭電話號碼。 (一個人可以有相關的地方任意數量的,所以我不能只是檢查沒有相關的地方。)慢速查詢 - 選擇不存在外部屬性的行
我當前的查詢看起來像
SELECT ID from Person LEFT JOIN Place on Person.ID = Place.Person WHERE
(Place.Type = 'home' AND Place.Phone IS NULL)
OR (NOT EXISTS
(SELECT * FROM Place where Person.ID = Place.Person and Place.Type= 'home'))
的問題是,子查詢因爲它沒有進行連接,所以非常慢。如何通過在子查詢中使用連接或其他技巧來提高性能?
什麼是你的表的模式?你在使用SQL Server,MySQL,Oracle等嗎? – ryanlutgen