我遇到了麻烦。如何加入2表查询。如果数据表:
表1: 客户ID:1,2,3,4,5
客户代码:cus1,cus9,cus4,null,null
客户名称:roya,almudena,jack,jane,Francisco
表2: 客户ID:1,2,3,4
客户代码:cus1,cus2,cus9,null
客户名称:roya,jose,almudena,jane
问:什么是查询以显示2个表中的所有名称(无重复名称)。
感谢您的回答。
答案 0 :(得分:2)
您不需要JOIN
,需要UNION
声明
select distinct name from table1
union
select distinct name from table2
如果您使用union all
,则会创建重复项,但union
本身不会。
如果您想要更加安全,也可以将其包裹在select distinct name from ()
中。
答案 1 :(得分:1)
如果每个表中没有重复的名称(如示例数据中所示),我强烈建议:
select t1.customername
from table1 t1
union all
select t2.customername
from table2 t2
where not exists (select 1 from table1 t1 where t1.customername = t2.customername);
这应该有更好的表现。
答案 2 :(得分:0)
使用union语句:
select distinct Customername from table1
union
select distinct Customername from table2