我有一个联接,我希望通过加入两个不同项目ID的项目ID上的项目表来收集两个项目的名称。例如:
SELECT first_item_name, second_item_name FROM items JOIN order_table ON ...
这就是我被困的地方 - 我实际需要做的是在一张桌子上连接两个,第一个选择第一个项目的名称:
ON first_item_id = first_id
然后返回并使用另一个联接选择第二个项目的名称:
ON second_item_id = second_id
我的问题是,这可以在一次加入中完成吗?
谢谢。
答案 0 :(得分:0)
总之;否。
要记住的是
On value = value
对于每个元组,子句必须求值为TRUE(将其视为有效记录中的元组,但是由连接创建的记录)。因此,如果第一个元组的tableA.col1 = tableB.col1为真,那么同时对于第二个元组的tableA.col1 = tableB.col1也是如此。这是皱纹;在两种情况下tableA.col1 = tableB.col1但仅针对每个元组,以你要求的方式我可以同时使用tuple1和tuple2。
不要担心不止一次加入同一张桌子。这并没有错,不会导致性能不佳或任何其他原因被避免。