如何从 2 table 进行多条件查询?
How to do query with multiple condition from 2 table?
我想根据这些条件从 worldcity 中挑选城市:
- 这个城市的人口超过了菲律宾人口最多的城市的人口。 (含义:例如城市 X 是菲律宾人口最多的城市。我们要列出人口大于城市 X 的城市),AND
- 美国有一个城市(uscity)与所选城市同名
``
worldcity.colomns = ['city', 'lat','lng','country','iso2','iso3','capital','population','id']
uscity.columns = ['city', 'state_id', 'state_name', 'county_fips', 'county_name',
'lat', 'lng', 'population', 'density', 'source', 'military',
'incorporated', 'timezone', 'ranking', 'zips', 'id']
query = """
SELECT DISTINCT
city
FROM
worldcity as w
inner join
uscity as u
on
w.city = u.city
WHERE w.population >= (MAX)population IN
(SELECT
population
FROM worldcity
WHERE
country = 'Filipina';
)
"""
sql_run(query)
操作错误:“人口”附近:语法错误
调整 WHERE
子句以将 MAX
放在子查询中:
...
WHERE w.population > (
SELECT MAX(population)
FROM worldcity
WHERE country = 'Filipina'
)
我稍微修改了你写的答案
也许这会有所帮助,因为我已经尝试过并且有效
如果您想包括菲律宾人口最多的城市,您可以更改 ( > 为 >=)
query = """
SELECT DISTINCT w.city
FROM
worldcity as w
inner join
uscity as u
on
w.city = u.city
WHERE w.population > (SELECT MAX(population)
FROM worldcity
WHERE country = 'Philippines')
ORDER BY w.city
"""
sql_run(query)
我想根据这些条件从 worldcity 中挑选城市:
- 这个城市的人口超过了菲律宾人口最多的城市的人口。 (含义:例如城市 X 是菲律宾人口最多的城市。我们要列出人口大于城市 X 的城市),AND
- 美国有一个城市(uscity)与所选城市同名
``
worldcity.colomns = ['city', 'lat','lng','country','iso2','iso3','capital','population','id']
uscity.columns = ['city', 'state_id', 'state_name', 'county_fips', 'county_name',
'lat', 'lng', 'population', 'density', 'source', 'military',
'incorporated', 'timezone', 'ranking', 'zips', 'id']
query = """
SELECT DISTINCT
city
FROM
worldcity as w
inner join
uscity as u
on
w.city = u.city
WHERE w.population >= (MAX)population IN
(SELECT
population
FROM worldcity
WHERE
country = 'Filipina';
)
"""
sql_run(query)
操作错误:“人口”附近:语法错误
调整 WHERE
子句以将 MAX
放在子查询中:
...
WHERE w.population > (
SELECT MAX(population)
FROM worldcity
WHERE country = 'Filipina'
)
我稍微修改了你写的答案
也许这会有所帮助,因为我已经尝试过并且有效
如果您想包括菲律宾人口最多的城市,您可以更改 ( > 为 >=)
query = """
SELECT DISTINCT w.city
FROM
worldcity as w
inner join
uscity as u
on
w.city = u.city
WHERE w.population > (SELECT MAX(population)
FROM worldcity
WHERE country = 'Philippines')
ORDER BY w.city
"""
sql_run(query)