如果其中一个表在要加入的列中有重复值,是否可以连接2个表?

时间:2012-02-22 13:05:42

标签: sql postgresql join

假设我正在将Shoes表加入Clothes表,它们都有一个名为ShoesID的列,所以对我来说,加入这两个表是有意义的。 ShoesID(它也恰好是Shoes表的主键)。但是这是我的问题,它不是Clothes表的主键,所以在Clothes表中,ShoesID列中,有些行会重复,这会破坏我的连接。

有没有办法解决这个问题?

Clothes Table
ClothesID   ShoesID   NakedVarchar
99      |1           |  e|
100     |1           |  f|
101     |4           |  g|
102     |4           |  d|

I want to join this to this:



Shoes Table

ShoesID  Descriptionvarchar
|1        |  a|
|2        |  b|
|3        |  c|
|4        |  d|




所以我认为这样做的逻辑方法是做

LEFT JOIN Clothes ON Shoes.ShoesID = Clothes.ShoesID

不幸的是,因为衣服表包含重复,似乎Postgres将它们切掉了, 我想要加入所有数据,包括重复数据,我该如何解决这个问题呢?

它并不像倒转我的连接语句那么简单,因为我在技术上试图加入它们 有许多其他联接的查询。

1 个答案:

答案 0 :(得分:1)

你可以进行任何你想要的连接,甚至是“自我加入”,但如果关键字之间没有巧合或匹配,你的查询可能是空的。如果要列出所有内容,则应使用UNION而不是连接。