【发布时间】:2011-04-05 10:19:25
【问题描述】:
我有一个表引擎 (eball)、一个损坏表 (dv) 和一个安装了服务产品的表 (sp)。每个引擎可能有多个损坏和多个服务产品。
现在我想创建一个查询,其中包含所有损坏、其引擎信息以及是否安装了服务产品“Retrofit”,以及服务产品 Retrofit 的信息。
我下面的 SQL 是错误的,因为安装了不同的服务产品后我没有受到损害。如果我不包括这个 where 子句,我会为每个安装的服务产品获得相同的损坏(等于损坏)???
SELECT *
FROM
dbo.EPI_EB2S_damage_report_v as dv
LEFT OUTER JOIN dbo.EPI_all_v as eball ON dv.DB_NO = eball.DB_NO
LEFT OUTER JOIN dbo.ServiceProducts sp ON dv.DB_NO = sp.DB_NO
WHERE (sp.SERVICE_PRODUCT_NAME = 'Retrofit Pulse' OR sp.SERVICE_PRODUCT_NAME is NULL OR sp.SERVICE_PRODUCT_NAME = '')
【问题讨论】:
标签: sql-server join where-clause