【发布时间】:2014-04-12 09:26:05
【问题描述】:
我需要在两种不同的情况下加入两个不同的表。在这种情况下,我必须用这两种解决方案来解决我的问题;
1) 我将创建一个语句(S.ShipmentType) 以在 join 中使用,如下所示:
SELECT S.*, P.*
,CASE
WHEN S.ShipmentType = 'import' THEN SP.SupplierName
WHEN S.ShipmentType = 'export' THEN C.CustomerName
END AS ShipmentDesination
FROM tblShippments S
INNER JOIN tblProducts P ON S.productId = P.productID
LEFT OUTER JOIN tblCustomers C ON S.companyId = C.customerId AND S.ShipmentType = 'export'
LEFT OUTER JOIN tblSuppliers SP ON S.companyId = SP.supplierId AND S.ShipmentType = 'import'
2) 或者我会为导入和导出创建两个不同的出货表,然后使用两个不同的查询来获取数据。
哪一个是最佳实践?
【问题讨论】: