我有以下两个表:
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";
答案 0 :(得分:2)
如果您在Unix上运行,如果我提出字面的问题,那么您的问题可能是区分大小写。
在Unix中,表名称区分大小写,因此如果您的表名为Counties
和Cities
,那么当您使用counties
和cities
时出现问题你的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