【发布时间】:2011-07-11 05:40:11
【问题描述】:
我正在寻找显示两个表中所有行的最佳方式,同时先通过一个字段 (dwg) 连接,然后在适用的情况下进行第二次连接。
表 1 数据由示意图 (dwg) 以及构建图中所示项目所需的零件列表组成。表 2 包含有关为构建原理图而订购的实际部件的数据。 table2 中的某些部分是 table1 中的部分组合(例如:table1 中的 foo 和 bar 在 table2 中被排序为 foobar)。
我可以使用 UNION ALL 显示两个表中的所有行,但这不会同时连接 dwg 和部分字段。我也查看了 FULL OUTER JOIN,但我还没有弄清楚如何先通过 dwg 加入,然后再按部分加入。以下是数据示例。
table1 table2
dwg part qty order dwg part qty
----- ----- ----- ----- ----- ----- -----
123 foo 1 ord1 123 foobar 1
123 bar 1 ord1 123 bracket 2
123 widget 2 ord2 123 screw 4
123 bracket 4 ord2 123 nut 4
456 foo 1 ord2 123 widget 2
ord2 123 bracket 2
ord3 456 foo 1
所需的输出:
目标是创建一个视图,为 table1 中的所有部件和 table2 中的关联订单提供可见性(包括出现在一个表中但不在另一个表中的那些部件),以便我可以看到 table1 中的所有绘图部件和关联的记录在 table2 以及 table2 中的记录,其中部分不在 table1 中。
part_request_order_report
dwg part qty order part qty
----- ----- ----- ------ ----- -----
123 foo 1
123 bar 1
123 widget 2 ord2 widget 2
123 bracket 4 ord1 bracket 2
123 bracket 4 ord2 bracket 2
123 ord1 foobar 1
123 ord1 screw 4
123 ord1 nut 4
456 foo 1 ord3 foo 1
这可能吗?还是我最好遍历数据来构建报告表?提前致谢。
【问题讨论】: