【发布时间】:2014-05-10 14:42:26
【问题描述】:
我想通过读取一个完整的表从数据库中获取数据,连接另一个和一个,但只有在第一个指定字段不为 NULL 时才连接最后一个。这是查询:
SELECT a.*, u1.Name, u2.Name FROM `articles` a
JOIN `users` u1 ON (a.id=1 AND u1.`id` = a.`authorid` )
JOIN `users` u2 ON (a.`updaterid` IS NOT NULL AND u2.`id` = a.`updaterid`)
应该可以正常工作,但事实并非如此。如果 updaterid 不是 NULL,它会返回有效结果,但如果是,我会不断得到空结果。关于这个有什么想法吗?
PS 我也尝试了一些组合,例如使用 WHERE 或不同类型的 JOIN。
【问题讨论】:
-
考虑提供适当的 DDL(和/或 sqlfiddle)以及所需的结果集