2013-10-23 50 views
-1

我有两个独特的记录表,一个用于游戏鱼(838行),另一个用于非游戏鱼类(140行)。两个表都包含一个'物种'列。我需要将这些表连接到一个有978个唯一行和一个Species列的表中。我尝试过LEFT JOIN,INNER JOIN和FULL OUTER JOIN没有任何成功。这似乎很简单,但我不知道我做错了什么。使用PostgreSQL加入同一列的两个独特表格

谢谢。

回答

1

你想要结合,而不是加入。

select species from game_fish_table 
union all 
select species from non_game_fish_table 
+0

这将返回7017行? – dubch87

+0

分别运行每个SELECT以确认您在原始问题中引用的行数。在原始分析中,某些物种可能会有多行被DISTINCT丢弃。如果是这种情况 - 您可以在上面的语句中删除ALL,以便重复的行将被丢弃(以服务器需要更多计算为代价)。 – dav1dsm1th

+0

你可能不得不使用从这里的大卫提到的选择不同的物种......无论你原来的查询是要达到838行。我认为他们已经与你的问题的措辞是独一无二的 – Twelfth

1

如果您的查询选择两个表中的类似的记录,他们没有涉及到另一个例如通过一个ID来获得来自其它表的信息,你想要的是一个UNION

UNION运算符将两个或更多个SELECT 语句的结果集组合为单个结果集。

SELECT species FROM gameFish 
UNION 
SELECT columns> ROM nonGameFish 
相关问题