Получение данных из нескольких таблиц с помощью левого внешнего соединения — PDO

Я пытаюсь подключиться к 3 таблицам, используя LEFT OUTER JOIN. Я не уверен, правильно ли я это делаю.

Таблицы являются: цены, страны и типы услуг

Запрос:

$sql = "SELECT rates.rate_id, rates.initial_change, service_types.service, countries.country
FROM rates
LEFT OUTER JOIN service_types ON rates.service_id = service_types.serviceType_id
LEFT OUTER JOIN countries ON rates.from_id = country.country_id
LEFT OUTER JOIN countries ON rates.to_id = country.country_id
ORDER BY service_types.serviceType_id ASC";
$statement = $con_db->exec($sql);
$result = $statement->fetchAll();//error points to this line

Это сообщение об ошибке:

Фатальная ошибка: Вызов функции-члена fetchAll () для необъекта в

0

Решение

Одна вещь, которую я заметил, это то, что ваш доступ к вашим таблицам неверен. Я предполагаю, что SQL является недопустимым, который возвращает нуль из exec, Попробуйте изменить свой запрос на это:

$sql = "SELECT rates.rate_id, rates.initial_change, service_types.service, countries1.country, countries2.country
FROM rates
LEFT OUTER JOIN service_types ON rates.service_id = service_types.serviceType_id
LEFT OUTER JOIN countries as countries1 ON rates.from_id = countries1.country_id
LEFT OUTER JOIN countries as countries2 ON rates.to_id = countries2.country_id
ORDER BY service_types.serviceType_id ASC";

Обратите внимание, что страна изменилась на страны1 & country2 в условии соединения, а также столбцы в select.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]