对不起,我是新手,所以这可能是一个非常基本的问题!!
我有两张表,其中包含一些重叠数据。
表1包含 customer_name , customer_address ,国家/地区,性别以及许多其他列。
表2还包含 customer_name 和 customer_address ,但与表一有不同的数据。表2还有其他我想忽略的列。
我想提取所有 customer_name & customer_address '从表1和表2开始,以及表1中的国家和性别,并将它们放在另一个表中。
如果有人有任何建议,我真的很感激听到他们!
答案 0 :(得分:1)
我想你想要一个UNION
:
SELECT customer_name, customer_address, country, gender
FROM table1
UNION
SELECT customer_name, customer_address, '', ''
FROM table2
请注意,UNION
会删除重复的行,以创建一个不同的结果集。
如果您想要两个表中的所有行,即使存在重复项,也请使用UNION ALL
代替。
修改:仅显示不在table2
table1
个客户/地址
有很多方法,但我喜欢NOT EXISTS()
:
SELECT customer_name, customer_address, country, gender
FROM table1
UNION
SELECT customer_name, customer_address, '', ''
FROM table2 t2
WHERE NOT EXISTS (SELECT *
FROM table1 t1
WHERE t1.customer_name = t2.customer_name
AND t1.customer_address = t2.customer_address)