【发布时间】:2018-08-02 20:01:45
【问题描述】:
SELECT
E.Id,
E.Name,
CASE EL.Application_Level WHEN 33 then 1 ELSE 0 END As MyDisplayName,
CASE EL1.Application_Level WHEN 34 then 1 ELSE 0 END As FoodTag
FROM
Entity E
INNER JOIN dbo.Countries CN ON cn.id=E.COUNTRY_ID
LEFT JOIN dbo.Entity_Levels EL ON E.ID = EL.Entity_ID AND EL.Application_Level = 33
LEFT JOIN dbo.Entity_Levels EL1 ON E.ID = EL1.Entity_ID AND EL1.Application_Level = 34
我想使用 OR 条件而不是使用同一个表的两个连接,因为将添加更多应用程序级别,我不想添加更多连接。
无论如何我可以使用或条件和一个连接并将多条记录合并到一条记录。
【问题讨论】:
-
多个
left joins 是更好的方法。 -
@GordonLinoff 我可以拥有超过 10 个应用程序级别。你还是更喜欢这么多的左加入?
-
尝试将
or放入其中的两个连接中,看看性能会发生什么变化。
标签: sql sql-server join left-join