2

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

Names
- id (int)
- name (string)

Relationships
- id1 (int)
- id2 (int)

特定のid1を持つすべての関係のリストをクエリしたいのですが、結果のクエリにNamesの名前を含めたいと思います。

したがって、結果には4つの列が含まれます

  • id1
  • id2
  • name_for_id1
  • name_for_id2

これは可能ですか?どちらかの名前を含めるために内部結合を実行できることは知っていますが、両方の名前を含める方法がわかりません。

ある名前については、次のようにします。

select Relationships.id1, Relationships.id2, Names.name from Relationships
inner join Names
on Names.id1 = Relationships.id1
4

2 に答える 2

4

テーブルに2回参加できます。

SELECT
   r.id1,
   r.id2,
   n1.name,
   n2.name
FROM Relationships r
INNER JOIN Names n1 ON r.id1 = n1.id
INNER JOIN Names n2 ON r.id2 = n2.id
于 2013-01-07T21:03:48.090 に答える
1

に2回目の結合を行いNamesます。テーブルエイリアスを使用して、どの結合がどの結合であるかを指定できます。

select r.id1, r.id2, n1.name, n2.name
from Relationships r
inner join Names n1
    on n1.id = r.id1
inner join Names n2
    on n2.id = r.id2
于 2013-01-07T21:06:11.373 に答える