问:写一个查询,列出每个没有蓝色房子的人的名字。
这是我的代码:

SELECT persons.name
FROM persons
JOIN houses ON (persons.id=houses.owner_id)
WHERE houses.color<>'Blue';

两个表如下所示:
mysql - 如何编写一个查询,给出每个不拥有蓝房子的人的名字?-LMLPHP
我的结果:
mysql - 如何编写一个查询,给出每个不拥有蓝房子的人的名字?-LMLPHP
预期结果:
mysql - 如何编写一个查询,给出每个不拥有蓝房子的人的名字?-LMLPHP
我怎样才能不让“Arian”出现在我的结果中?
“阿里安”有两栋房子,一栋红一栋蓝。因为他拥有那栋红色的房子,所以他对我的成绩很感兴趣。我正努力想办法把他排除在外。

最佳答案

您可以使用not exists

SELECT p.name
FROM persons p
WHERE NOT EXISTS (SELECT 1
                  FROM houses h
                  WHERE h.owner_id = p.id AND
                        h.color = 'Blue'
                 )

10-07 15:13