我有一个表(生产商):避免多次加入
Manufacturer ID
------------------
Lagun 1
Hurco 2
Mazak 3
Haas 4
然后另一个表(库存):
Shop Lathe DrillPress CNC Mill ID
-------------------------------------------------
ABC Inc 2 1 3 3 1
VECO 4 2 1 2 2
我需要到结束:
Shop Lathe DrillPress CNC Mill
--------------------------------------------
ABC Inc Hurco Lagun Mazak Mazak
VECO Haas Hurco Lagun Hurco
我有此:
SELECT
Shop, M1.Manufacturer AS Lathe, M2.Manufacturer AS DrillPress,
M3.Manufacturer AS CNC, M4.Manufacturer AS Mill
FROM Inventory I
LEFT JOIN Manufacturers M1 ON M1.ID = I.LstFlowMan
LEFT JOIN Manufacturers M2 ON M2.ID = I.LstFiltFlowMan
LEFT JOIN Manufacturers M3 ON M3.ID = I.LstFilterMan
LEFT JOIN Manufacturers M4 ON M4.ID = I.LstEmitMan
我可能错过了一个更好的方式与枢轴或交叉应用或东西。
我会打赌用这样的查询你会得到最好的表现(当然如果有索引的话)。其他查询可能看起来更好,但很可能他们的表现会更差 –
可能是,但如果库存中有很多字段,则会变长。另外,如果您只想查找一条记录,即WHERE I.ID = 2,我想知道哪条路会更好? –