我是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名称和地址组合?或者您是否需要为拥有多个地址的人选择一个地址? –