2009-05-22 87 views
0

另一個表我有2個表...比較結果與PHP/MySQL的

 
Table1: 
ID, Name, Country 
Table2: 
ID, accountID, parent 

table1.id = table2.acountID 

我的腳本執行與特定父所有記錄的搜索。 我想將這些結果與table1進行比較,並返回搜索中不可用的所有條目。

例如。 表1:

 
1, Bill, AU 
2, Charles, US 
3, Clare, CA 

表2:

 
1, 1, Mary 
2, 1, William 
3, 2, Henry 

搜索(從表2中選擇* WHERE帳戶ID = '1')返回:

 
1, 1, Mary 
2, 1, William 

,我希望得到這個結果(從表1):

2, Charles, US 
3, Clare, CA

回答

1
SELECT * FROM table1 WHERE ID NOT IN 
    (SELECT * FROM table2 WHERE accountID = '1') 
+0

完美! (或至少看起來很完美)。我認爲這是因爲它讀取我想如何:) – Hintswen 2009-05-22 05:07:26

0

你的搜索將返回表2中的所有行帳戶ID = 1

若要退回未在搜索返回的所有行,你會發現在表1具有其它的ID比1的所有行,或者沒有Table2中的任何匹配行。

SELECT 
    ID 
FROM 
    Table1 
WHERE 
    ID <> 1 
    OR NOT EXIST (SELECT * FROM Table2 WHERE accountID = 1) 

似乎很簡單?