左连接可能是您要查找的内容。
SELECT persons.id, persons.name, voters.personID IS NOT NULL AS hasVoted
FROM persons LEFT JOIN voters ON (persons.id = voters.personID)
WHERE persons.course = '1' AND voters.type = '2'
GROUP BY persons.id
http://dev.mysql.com/doc/refman/5.0/en/join.html
的左连接将包括联接的左侧看到所有匹配的行,并从联接右侧任意配套件。没有匹配右侧的任何左侧的行将具有空值的右侧列值。
至于'IS NOT NULL'或'IS NULL'被使用,因为'X = NULL'不像它出现那样表现。
> SELECT 'A' = NULL, 'A' IS NULL, NULL = NULL, NULL IS NULL;
+------------+-------------+-------------+--------------+
| 'A' = NULL | 'A' IS NULL | NULL = NULL | NULL IS NULL |
+------------+-------------+-------------+--------------+
| NULL | 0 | NULL | 1 |
+------------+-------------+-------------+--------------+
更多关于用null工作细节: http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html
谢谢!就是我正在寻找的东西!我不知道“IS NOT NULL”部分。 – JNK
扩大了答案,以更详细地解释空白部分。 – rrehbein
现在我甚至可以理解左连接是如何工作的!你今天真的帮了我! – JNK