1

これは簡単な質問かもしれませんが、私はどこにも答えを見つけることができません。問題の抽象化されたバージョンは次のとおりです。

  • 「Key」という名前の列と「Value」という名前の列を持つテーブル「Data」があります
  • 「ID」、「Key1」、「Key2」という名前の列を持つ別のテーブル「Users」があります
  • 列「ID」、「Value1」、および「Value2」を与えるある種の結合が必要です。ここで、Value1はKey1の値であり、Value2はKey2の値です。
4

3 に答える 3

2

試す

select u.id, d1.v as v1, d2.v as v2 from users u 
inner join data d1 on u.k1 = d1.k 
inner join data d2 on u.k2 = d2.k

SQLFiddleで動作することを確認できます

于 2012-06-15T22:40:25.697 に答える
1
select d1.value, d2.value from Users 
inner join Data d1 on users.key1 = d1.key 
inner join Data d2 on users.key2 = d2.key 
于 2012-06-15T22:30:13.403 に答える
0
SELECT
    a.ID,
    b.Value AS Value1,
    c.Value AS Value2
FROM 
    users a
INNER JOIN
    data b ON a.Key1 = b.Key
INNER JOIN
    data c ON a.Key2 = b.Key
于 2012-06-15T22:51:29.510 に答える