0

我在处理来自多个表的查询时遇到问题。我的平台是 SQL。每个表的前两列(ID、Tag)相互关联。我正在尝试使用 table1 的结果从 table2 和 table3 中选择数据。

表1.ID、标签、顶部重量、底部重量、总重量 Table2.ID、标签、颜色、阴影、色调、透明度 Table3.ID、标签、序列、长度、宽度、高度

Table1 用于确定ID 和Tag。ID 和 Tag 的组合对于该表是唯一的。table1 中没有空值。在此示例中,我将使用顶部重量和底部重量来搜索 ID 和标签。但是,可以使用任意数量的标准来查找 ID 和标签。

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

表1查询结果

我想从 table1 中获取 ID 和 Tag 结果,并将它们用于我的 table2 和 table3 查询。对于table2,前两列(ID、Tag)的组合是唯一的。我想从这个表中选择颜色、阴影和色调。这些列可以有空值。对于table3,前三列(ID、Tag、Sequence)的组合是唯一的。我想从此表中选择序列、长度和宽度。这些列也可以有空值。

是否可以将所有三个表合并为一个查询,并使用第一个表的结果来获取第二个和第三个表的结果?示例表只有 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 回答