У меня есть два стола, один для бронирования и один для размещения в номерах. Таблица бронирования имеет таблицу идентификаторов номеров и номеров, имеет id и room_id (идентификатор относится к идентификатору бронирования). Я хочу найти список всех заказов, у которых нет записи в таблице распределения мест.Left Outer Join Query
Я сделал следующий запрос:
$sql = "SELECT booking.id, booking.username, booking.contact_name
FROM booking LEFT OUTER JOIN rbs_room_allocation
USING id
WHERE (rbs_room_allocation.id IS NULL)
AND (booking.trip_id = :trip_id)
AND (booking.paid = booking.total)";
$params = array('trip_id' => $trip_id);
$result = $dbh->getAll($sql, null, $params);
Buut Я получаю сообщение об ошибке, которая говорит:
[Native сообщение: У вас ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с Ид WHERE (rbs_room_allocation.id IS NULL) И (booking.trip_id =?) и (номер 'в строке 1]
I не знаю, почему это не работает, я попытался поместить идентификатор в запрос вместо использования параметров, но я получаю ту же ошибку, поэтому я предполагаю, что это что-то связано с моим запросом. Любая помощь очень ценится!
Это сработало спасибо! Но я решил переименовать столбец в booking_id и вместо этого использовать предложение «ON», так что это менее двусмысленно, что означает «id»: D – Becky