0

我如何加入两个表,其中与某个表的连接不止一次?

我有这两张表:

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

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

谢谢

4

2 回答 2

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,它介绍了它如何处理您提供的示例数据。

于 2013-10-27T13:55:26.620 回答
0

这个没试过,但是

SELECT tableB.Num
    ,tableA.NAME
    ,tableA.NAME
FROM tableB
    ,tableA
WHERE tableB.T1 = tableA.Value
    OR tableB.T2 = tableA.Value
于 2013-10-27T13:47:54.680 回答