我試圖找到所有的未表之間匹配的標識的,我的SQL是:如何不要使用SQL
SELECT UserP.*, AccountP.*
FROM UserP
FULL JOIN AccountPON (UserP.Id = AccountP.Id)
WHERE UserP.Id NOT IN AccountP.Id
我試圖找到所有的未表之間匹配的標識的,我的SQL是:如何不要使用SQL
SELECT UserP.*, AccountP.*
FROM UserP
FULL JOIN AccountPON (UserP.Id = AccountP.Id)
WHERE UserP.Id NOT IN AccountP.Id
您可以使用此子查詢:
SELECT * FROM UserP WHERE Id NOT IN (select Id from AccountPON);
select * from tableName where id not in (1,2,3)
它將使所有記錄的ID爲1,除了或2或3
IN is basically used as OR boolean operator in MYSQL.
您可以像使用FULL OUTER JOIN
一樣在兩組中找到不匹配項。在全外連接,連接鍵將其上不匹配的側空子,所以查詢需要更改爲:
SELECT UserP.*, AccountP.*
FROM UserP FULL JOIN AccountPON ON UserP.Id = AccountP.Id
WHERE UserP.Id IS NULL OR AccountP.Id IS NULL;
的WHERE Id NOT IN...
子查詢只會返回您數據,是在LHS而不是在RHS表中,這似乎只解決了你之後的一半 - 你需要爲RHS重複NOT IN
而不是LHS,然後將兩個結果聯合起來,如下所示:
SELECT Id
FROM UserP
WHERE Id NOT IN (SELECT ID FROM AccountPON)
UNION ALL
SELECT Id
FROM AccountPON
WHERE Id NOT IN (SELECT ID FROM UserP);
NOT IN: - 根據表達式是包含在列表中還是從列表中排除,指定搜索表達式。搜索表達式可以是常量或列名,列表可以是一組常量,更常見的是子查詢。括值的括號中的列表
SELECT *
FROM UserP
WHERE Id NOT IN (SELECT Id from AccountP)
參考,以瞭解更多: -
http://msdn.microsoft.com/en-us/library/ms173545.aspx ,你想找到它不在AccountPON表中的ID http://msdn.microsoft.com/en-us/library/ms177682.aspx
? – Backtrack 2014-12-02 14:19:51