У меня следующие две таблицы:
Cities: id | name | county_id
Counties: id | name
Я передаю этот запрос имя графства, и я пытаюсь выбрать id и имя всех строк из городов с одним и тем же county_id. У меня возникают трудности с построением запроса через эти две таблицы базы данных. Вот что я имею:
"SELECT cities.id,cities.name
FROM cities,counties
WHERE counties.name='$county' AND cities.county_id=counties.id
ORDER BY cities.name ASC";
Если вы работаете в Unix, и если я возьму ваш вопрос буквально, ваша проблема может быть с чувствительностью к регистру.
Имена таблиц чувствительны к регистру в Unix, поэтому, если ваши таблицы называются Counties
и Cities
, тогда у вас возникнет проблема при использовании Counties
и Cities
в вашем SQL-запросе.
Тем не менее, ответ на вопрос mysql_error()
имеет решающее значение... если ваш код распечатает ошибку и опубликует ее здесь, если вам нужна дополнительная помощь.
Предположительно вы используете 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
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;