与具有相同列名的连接不同

时间:2017-09-29 03:08:53

标签: sql

这是一个在线问题,我似乎无法获得预期的输出。

表:dogs

  id INTEGER NOT NULL PRIMARY KEY,
  name VARCHAR(50) NOT NULL

表:cats

  id INTEGER NOT NULL PRIMARY KEY,
  name VARCHAR(50) NOT NULL

找到这个2表的不同名称。

预期输出是这个

-- name     
-- -----
-- Bella    
-- Kitty    
-- Lola  

我尝试加入并且明显导致说我的名字含糊不清。疲惫的联盟,但不能区分它。

1 个答案:

答案 0 :(得分:1)

要获取distinct名称列表,您可以使用union

select name from dogs
union 
select name from cats

或者如果您的数据库支持FULL OUTER JOIN,那么

select distinct coalesce(d.name,c.name)
from dogs d
full outer join cats c on d.name = c.name