我有两个包含350万行数据的表。我在两者之间创建左连接以创建新视图。
代码1:
SELECT t1.c1,t1.c2,t2.c3,t2.c4
from table1 as t1
left join table2 as t2
on t1.Location=t2.Location and t1.OrderNumber=t2.OrderNumber and t1.Customer=t2.Customer
代码2:
SELECT t1.c1,t1.c2,t2.c3,t2.c4
from table1 as t1
left join table2 as t2
on t1.OrderNumber=t2.OrderNumber
两个代码片段都给出了相同的预期结果,因为表2中的“订单号”字段只有唯一值。
与仅有一个相比,为JOIN提供更多字段会更好吗?
答案 0 :(得分:0)
SELECT t1.c1,t1.c2,t2.c3,t2.c4
from table1 as t1
left join table2 as t2
on t1.Location = t2.Location
and t1.OrderNumber = t2.OrderNumber
and t1.Customer = t2.Customer
如果OrderNumber是任一表的PK,那么添加其他字段不会改变结果,除非另一方没有索引,否则不会改善性能。
如果表2中的订单号字段仅具有唯一值,则不会更改查询。如果它是PK或具有唯一约束/索引,那么除非连接的Table2.OrderNumber未被索引,否则添加字段将无济于事。