0

特定のテーブルへの接続が複数回発生する 2 つのテーブルを結合するにはどうすればよいですか?

私はこれらの2つのテーブルを持っています:

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

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

これら2つのテーブルを結合して取得するにはどうすればよいですか:

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 に答える