Как правильно составить SQL запрос, 3 таблицы, одинаковые названия полей?

SQL рабочий
4e8e01f6b25f4cf189c5e1253c4205cd.png
я вижу что все 3 поля выбрал как мне надо

Но в скрипте работать не хочет, выдает лишь Россию

$sql = "SELECT city.name, region.name, country.name
FROM city, region, country
WHERE city.city_id = ?i AND region.region_id = ?i AND  country.country_id = ?i";

$geo = $db->getall($sql,$ank['city_id'],$ank['regionid'],$ank['countryid']);


array (size=1)
  0 => 
    array (size=1)
      'name' => string 'Россия' (length=12)
  • Вопрос задан
  • 334 просмотра
Решения вопроса 1
gogametreveli
@gogametreveli
$sql = "SELECT city.name as city_name, region.name as region_name , country.name as country_name
FROM city, region, country
WHERE city.city_id = ?i AND region.region_id = ?i AND  country.country_id = ?i";

$geo = $db->getall($sql,$ank['city_id'],$ank['regionid'],$ank['countryid']);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
За скрипт с CROSS JOIN через запятую вас расстрелять было бы неплохо. Как связаны данные таблицы?
По хорошему скрипт должен быть примерно таким -
select something from city as c
INNER JOIN region as r ON c.regionId = r.Id
INNER JOIN country as co ON co.Id = r.countryId
WHERE some condition
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы