连接两个表,连接到同一个表的更多连接

时间:2013-10-27 13:44:10

标签: sql join

如何连接两个与某个表连接多次出现的表?

我有这两个表:

tableA                         
Name      Value                
================            
Test      001
Car       002
Bike      003

tableB
Num     T1      T2 
====================  
f4b     001     002
aaa     001     003  
666     002     001

我如何加入这两个表来获取:

Table A+B 
Num     T1      T2 
====================  
f4b     Test    Car
aaa     Test    Bike  
666     Car     Test

如果我使用

SELECT tableB.Num
    ,tableA.NAME
    ,tableA.NAME
FROM tableB
INNER JOIN tableA ON tableB.T1 = tableA.Value
    OR tableB.T2 = tableA.Value

我只是在所有行中得到相同的值。

由于

2 个答案:

答案 0 :(得分:3)

我认为您正在寻找此查询:

SELECT
  tB.Num 'Num',
  tA1.Name 'T1',
  tA2.Name 'T2'
FROM
  tableB tB INNER JOIN tableA tA1 ON tB.T1 = tA1.Value
            INNER JOIN tableA tA2 ON tB.T2 = tA2.Value
WHERE
  tA1.Value <> tA2.Value

以下是 SQLFiddle ,了解您提供的样本数据的工作原理。

答案 1 :(得分:0)

没试过,但是

SELECT tableB.Num
    ,tableA.NAME
    ,tableA.NAME
FROM tableB
    ,tableA
WHERE tableB.T1 = tableA.Value
    OR tableB.T2 = tableA.Value