我有一个视图,我将通过一系列左连接替换外键值及其参考值。
其中一个表格可以有多对一的关系,我加入
SLa.type
我的问题是,SLA表中有一列A
可以是B
或SLA.value
,然后SLA.type
会有一个数字。这会在我的视图中创建一个重复的行,唯一的区别是SLA.value
和SLA.type
。
我希望它返回A
为example.exampleId
的这些列,并且当表格中找不到给定Select Example.exampleId, SLA.type, SLA.value
FROM Example
LEFT JOIN SLA ON Example.exampleId = SLA.exampleId
WHERE SLA.type <> "B" OR SLA.type IS NULL or SLA.value IS NULL
E.g。我的视图以简洁的缩写形式选择查询:
<object-to-string-transformer>
example.exampleId在SLA表中只有两行,一行用于类型A,一行用于类型B.
任何想法都将受到赞赏!
答案 0 :(得分:0)
将SLA.type <> "B"
条件移动到join子句中,因为它仅适用于右侧列。在weher子句中,条件适用于整个数据集:
Select Example.exampleId, SLA.type, SLA.value
FROM Example
LEFT JOIN SLA ON Example.exampleId = SLA.exampleId and SLA.type <> "B"
虽然,我会考虑使用SLA.type = "A"
,以防你引入新的SLA类型。