我对面的一个问题来了这里,当我编写一个查询像这样:左联接屈服没有结果
SELECT a.v, b.w, c.x, d.y, e.z
FROM a
JOIN b
on a.id = b.id
LEFT JOIN c
on a.id = c.id
LEFT JOIN d
on b.code=d.code
JOIN e
on a.n = e.n
WHERE
a.zone = 10
WITH (nolock)
我拿到几百结果,但是当我将它修改为这样:
SELECT a.v, b.w, c.x, d.y, e.z
FROM a
JOIN b
on a.id = b.id
LEFT JOIN c
on a.id = c.id AND c.n = 0
LEFT JOIN d
on b.code=d.code AND d.n = 0
JOIN e
on a.n = e.n
WHERE
a.zone = 10
WITH (nolock)
我得到零结果。
根据我对SQL和左连接的理解,我觉得使用第一个查询获取任何结果意味着我应该至少获得第二个结果,如果只有一个来自c和d的字段为null。 PROGRESS是否以不寻常的方式实现外部连接?
我认为这是因为'B'不是一个左连接,当你加入'D'到'B'这个效果''a'' – 2013-03-26 15:47:55