我的问题的措辞并不完美,但基本上这就是问题所在。
我在“作品”表中有两列。一列是姓氏列表,另一列是人们居住的城市列表。
我不希望我的查询返回任何住在芝加哥的人。
我目前的代码是:
select lives.last_name
from lives
where lives.city <> "Chicago";
但是有些人住在芝加哥和其他地方,比如迈阿密,他们仍然出现。我如何只返回不住在芝加哥而不使用组或计数功能的人(还没有那么远)
谢谢
我的问题的措辞并不完美,但基本上这就是问题所在。
我在“作品”表中有两列。一列是姓氏列表,另一列是人们居住的城市列表。
我不希望我的查询返回任何住在芝加哥的人。
我目前的代码是:
select lives.last_name
from lives
where lives.city <> "Chicago";
但是有些人住在芝加哥和其他地方,比如迈阿密,他们仍然出现。我如何只返回不住在芝加哥而不使用组或计数功能的人(还没有那么远)
谢谢
你可以使用这样的东西NOT EXISTS
:
select a.last_name
from lives a
where not exists (select last_name
from lives b
where a.last_name = b.last_name
and city = 'chicago')
尝试使用NOT IN
SELECT last_name
FROM lives
WHERE last_name NOT IN
(
SELECT last_Name
FROM lives
WHERE city = 'Chicago'
)
您可以按姓氏分组选择所有城市,然后过滤不包含芝加哥的记录:
Select Last_name, City
from lives
group by Last_name
having group_concat(city) not Regexp 'Chicago'