0

複数のテーブルからのクエリに問題があります。私のプラットフォームは SQL です。各テーブルの最初の 2 つの列 (ID、タグ) は互いに関連しています。table1 の結果を使用して、table2 と table3 からデータを選択しようとしています。

表1.ID、タグ、トップ重量、ボトム重量、総重量 Table2.ID、タグ、色、色合い、色合い、透明度 表3.ID、タグ、シーケンス、長さ、幅、高さ

Table1 は、ID とタグを決定するために使用されます。ID とタグの組み合わせは、このテーブルに固有です。table1 には null 値はありません。この例では、トップ ウェイトとボトム ウェイトを使用して ID とタグを検索します。ただし、ID とタグを検索するために任意の数の条件を使用できます。

SELECT ID, Tag FROM table1 WHERE Top Weight = '22' AND Bottom Weight = '44'

Table1 クエリ結果

table1 から ID とタグの結果を取得し、それらを table2 と table3 クエリに使用したいと思います。table2 の場合、最初の 2 つの列 (ID、タグ) の組み合わせは一意です。このテーブルからカラー、シェード、ティントを選択したいと思います。これらの列には null 値が存在する可能性があります。table3 では、最初の 3 つの列 (ID、タグ、シーケンス) の組み合わせが一意です。このテーブルからシーケンス、長さ、および幅を選択したいと思います。これらの列は、NULL 値を持つこともできます。

3 つのテーブルすべてを 1 つのクエリに結合し、最初のテーブルの結果を使用して 2 番目と 3 番目のテーブルの結果を取得することは可能ですか? 例のテーブルは 14 行しかありませんが、実際には何万もの行があるため、パフォーマンスが重要です (そうでない場合もあります)。私はあなたの応答を楽しみにしています、ありがとう。

4

1 に答える 1

1

これは、かなり単純な外部結合クエリのように見えます。

select t1.id, t1.tag,
       t2.Color, t2.Shade, t2.Tint,
       t3.Sequence, t3.Length, t3.Width
from table1 t1 
left join table2 t2 on t1.id = t2.id and t1.tag = t2.tag
left join table3 t3 on t1.id = t3.id and t1.tag = t3.tag
WHERE t1.[Top Weight] = '22' AND t1.[Bottom Weight] = '44'
于 2013-06-11T15:10:56.707 に答える