1

2 つの異なるテーブルの ID を参照するマッピング テーブルがあります。各 ID がそれぞれのテーブルの別のフィールドに置き換えられたマッピング テーブルを選択したいと思います。

もう少し明確に言うと、それぞれ 2 つの列を持つ 3 つのテーブルがあります。

  • Table1 には id (主キー) と field1 があります
  • Table2 には id (主キー) と field2 があります
  • Table3 (マッピング テーブル) には、Table1_id (Table1.id の値を取る) フィールドと Table2_id (Table2.id の値をとる) フィールドがあります。

私が望むのは、Table1.field1 と Table2.field2 を列として Table3 の内容を取得することです。

内部結合を使用して、マッピング テーブルの列の 1 つを他のテーブルの 1 つの別の列に置き換える方法を知っています。

SELECT Table1.field1, Table3.Table2_id
FROM Table1
INNER JOIN Table3
ON Table1.id=Table3.Table1_id; 

ただし、基本的に両方の列で同じことを行う方法がわかりません。

4

4 に答える 4

7

私が正しく理解している場合はfield1、Table1 とfield2table 2 から取得しようとしています。その場合は、3 つのテーブルを結合するだけです。

SELECT a.field1, c.field2
FROM Table1 a
INNER JOIN Table3 b
ON a.id=b.Table1_id
INNER JOIN Table2 c
ON b.Table2_id = c.id
于 2013-06-11T11:44:04.320 に答える
0

別の結合を行います。

SELECT Table1.field1, Table2.field
FROM Table1
INNER JOIN Table3
ON Table1.id = Table3.Table1_id
INNER JOIN Table 2 
ON Table2.id = table3.table2_id; 
于 2013-06-11T11:44:14.720 に答える
0

3 つのテーブルすべてを結合するだけです。何かのようなもの

SELECT Table1.Field1, Table2.Field2
FROM Table3
JOIN Table1 ON Table1.Id = Table3.Table1_id
JOIN Table2 ON Table2.Id = Table3.Table2_id
于 2013-06-11T11:44:15.847 に答える
0

あなたが達成したいことを正しく理解しているかどうかはわかりませんが、これにより、キーで結合された両方のテーブルから結果が得られるはずです

SELECT Table1.field1, Table2.field2
FROM Table1
INNER JOIN Table3 ON Table1.id = Table3.Table1_id;
INNER JOIN Table2 ON Table2.id = Table3.Table2_id;
于 2013-06-11T11:44:28.853 に答える