我有以下似乎忽略“list.Completed”。它仍然显示标记为1的结果。在AND之后删除所有内容使其工作正常但我只需要有两个列都不显示null的结果。
SELECT DISTINCT
list.WorkOrder,
list.Address,
emails.MailDate,
locateparsed.WorkDate,
list.Completed
FROM list
LEFT JOIN parsed ON parsed.WorkOrder = list.WorkOrder
LEFT JOIN emails ON emails.EmailID = parsed.OriginID
LEFT JOIN locateparsed ON list.WorkOrder = locateparsed.WorkOrder
WHERE list.Completed = '0' AND emails.MailDate IS NOT NULL OR locateparsed.WorkDate IS NOT NULL
LIMIT 10
答案 0 :(得分:1)
添加一些括号:
WHERE list.Completed = '0' AND (emails.MailDate IS NOT NULL OR locateparsed.WorkDate IS NOT NULL)
布尔评估是从左到右完成的,因此如果您希望OR
具有优先权,则您需要这样做。