MySQL查询从两个表中选择值

时间:2010-08-28 17:16:14

标签: php mysql sql join

我有以下两个表:

Cities: id | name | county_id
Counties: id | name

我正在将此查询传递给县名'我正在尝试从具有相同county_id的城市中选择所有行的ID和名称。我在这两个数据库表中构建查询时遇到了困难。这就是我所拥有的:

"SELECT cities.id,cities.name
FROM cities,counties
WHERE counties.name='$county' AND cities.county_id=counties.id
ORDER BY cities.name ASC";

3 个答案:

答案 0 :(得分:2)

如果您在Unix上运行,如果我提出字面的问题,那么您的问题可能是区分大小写。

在Unix中,表名称区分大小写,因此如果您的表名为CountiesCities,那么当您使用countiescities时出现问题你的SQL查询。

那就是说,Will A对mysql_error()的回答是至关重要的......如果您需要进一步的帮助,请将您的代码打印出来并在此处发布。

答案 1 :(得分:1)

SELECT cities.id,cities.name
FROM Counties INNER JOIN CITIES 
ON Counties.id = Cities.county_id
WHERE  counties.name='$county'
ORDER BY cities.name ASC;

答案 2 :(得分:1)

大概你正在使用mysql_query(“...”),所以在查询的正下方放一条echo mysql_error();行,看看它是否由于某种原因失败了。我认为在这种情况下你没有正确连接,原始查询看起来很好(虽然使用旧的连接语法 - 下面给出了更好的语法)...

SELECT ci.id, ci.name
FROM  cities ci
INNER JOIN counties co
ON ci.county_id = co.id
WHERE co.name='$county'
ORDER BY ci.name ASC