0

一部の列が別のテーブル (Table2) を ID で参照するテーブル (Table1) があります。次のようになります。

表1

ID   Column 1    Column 2    Column 3
 3         15          16           0
 4         19           0           0
 5         21          22          23
 6          0           0           0
 7         25          26           0
 8         27           0           0

表 2

ID    String
15      data
16      data
19      data
21      data

次のような結果を返すクエリを作成しようとしています。

Table2ID    Table1ID
      15           3
      16           3
      19           4
      21           5
      22           5
      23           5
      25           7

表 2 にはどのような種類の親も参照されていないため、これを照会する最善の方法を見つけようとしています。私の SQL の経験は約 2 週間にも満たないため、何か助けていただければ幸いです。

4

2 に答える 2

1

ユニオン (またはすべてをユニオン) を使用して、複数のクエリの結果を組み合わせることができます。これを行うには、いくつかのルールに従う必要があります。まず、各クエリは同じ数の列を返す必要があります。次に、各列が必ずしも同じデータ型を返す必要はありませんが、データ型が異なると予期しないエラーが発生する可能性があるため、各クエリが各列に対して同じデータ型を返す場合ははるかに優れています。

明確にするために、複数の列がある場合、各クエリは最初の列に対して同じデータ型を返す必要があり、各クエリは 2 番目の列に対して同じデータ型を返す必要がありますが、最初の列のデータ型は必ずしもそうである必要はありません。 2 番目の列のデータ型と一致します。

Select Column1 As Table2ID, ID As Table1ID From Table1
Union All
Select Column2, ID From Table1
Union All
Select Column3, ID From Table1
于 2013-07-08T22:21:48.713 に答える
0
SELECT Table2ID,t1.ID
FROM Table2 t2
JOIN Table1 t1
   ON t2.Table1ID=t1.Col1 OR t2.Table1ID=t1.Col2 OR t2.Table1ID=t1.Col3
于 2013-07-08T22:30:38.947 に答える