我有两个具有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中的订单编号字段仅具有唯一的值相同。
与只有一个领域相比,更好的是加入更多的字段?
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或具有唯一的约束/索引,则除非将订单名单连接到订单,否则添加字段将无济于事。