我是SQL新手,並且尚未能夠正確獲取此SQL查詢。我目前有:從表A中獲取不在表B中的記錄
SELECT * FROM tableA
LEFT OUTER JOIN tableB
ON tableA.`full_name` = tableB.`full_name`
WHERE tableB.`id` IS NULL
這兩張表都有人的記錄,包含姓名和地址。我需要獲得所有在tableA中的記錄,但不是tableB。下面的圖表基本上是我需要:
的問題是,兩個人可以有相同的名稱,但不同的地址。因此,最終,我需要獲取tableA中所有人員的記錄,不包括具有重複名稱和地址的副本。
每個表中的列如下:
SELECT tableA.id FROM tableA
LEFT OUTER JOIN tableB
-- people are the same if fullname and adress match
ON tableA.`full_name` = tableB.`full_name`
AND tableA.adress = tableB.adress
-- filter people that re in tableA only
WHERE tableB.`id` IS NULL
-- filter duplicates
GROUP BY tableA.id
:
id,full_name,first_name,last_name,title,phone,address,city,state,postal_code
你能顯示錶的表結構,所以我們不必猜測的名字? :) –
大聲笑,是的。好主意。 :)我將編輯該問題。 – mdance
你是說你需要DISTINCT名稱和地址組合?或者您是否需要爲擁有多個地址的人選擇一個地址? –