MYSQL Where语句/子句被忽略

时间:2014-12-02 23:59:44

标签: mysql where

SELECT country.continent, country.name, city.district, city.name, city.population
FROM world.country, world.city
WHERE city.population < 3000000 
LIMIT 20, 30;

我正在获得一个笛卡尔积而不是一张表,其中显示了城市人口超过300万的select子句的内容。

world是数据库的名称 国家和城市是表格

请帮忙。

1 个答案:

答案 0 :(得分:2)

您需要将表格加在一起:

SELECT country.continent, country.name, city.district, city.name, city.population
FROM world.country JOIN
     world.city
     ON country.code = city.countrycode
WHERE city.population < 3000000 
LIMIT 20, 30;

作为编写SQL的提示:永远不要在from子句中使用逗号。始终使用显式连接。这些比隐式连接更强大(许多人认为它们使查询更容易阅读和维护)。