是否可以将一个表连接到另一个表,其中第一个表中的一列与第二个表中的多个列中的一个匹配?

时间:2014-04-16 21:09:36

标签: sql

我有一个包含两个表的SQL数据库,PeopleItinerary

People表格列:

  • ...
  • Item1
  • Item2
  • Item3
  • ...

Itinerary表格列:

  • ID
  • COLUMN2
  • ...

在人员表中,列Item1Item2Item3匹配ID列中某些行的Itinerary列中的值。

是否可以将行程表加入所有三个Item_列?例如,如下所示:

SELECT DISTINCT Itinerary.COLUMN2
FROM    People
        JOIN Itinerary ON People.ITEM1 = Itinerary.ID
        JOIN Itinerary ON People.ITEM2 = Itinerary.ID
        JOIN Itinerary ON People.ITEM3 = Itinerary.ID

请注意,上述查询无效。

2 个答案:

答案 0 :(得分:3)

您可以使用or子句中的inon来执行您想要的操作:

SELECT DISTINCT ITINERARY.COLUMN2
FROM People pl JOIN
     Itinerary i
     ON i.ID IN (pl.ITEM1, pl.ITEM2, pl.ITEM3)

答案 1 :(得分:0)

我不确定我完全理解你的问题,但也许是这样的?

SELECT DISTINCT Itinerary.COLUMN2

FROM People
    LEFT OUTER JOIN Itinerary ON
    (
        Itinerary.ID = People.ITEM1
        OR Itinerary.ID = People.ITEM2
        OR Itinerary.ID = People.ITEM3
    )