我有兩個表,一個用於預訂,另一個用於房間分配。預訂表有一個ID和房間分配表有一個ID和room_id(ID是指預訂ID)。我想查找所有在房間分配表中沒有條目的預訂的列表。左外部聯接查詢
我提出以下查詢:
$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我得到它說的錯誤:
[本地消息:您的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的 '身份證WHERE(rbs_room_allocation.id IS NULL)AND(booking.trip_id =?)AND(預訂' 在行1]
我正確的語法手冊不知道爲什麼這不起作用,我已經嘗試將ID放入查詢中,而不是使用參數,但是我得到了相同的錯誤,所以我假設它是與我的查詢有關的任何幫助,非常感謝!
這工作謝謝!但是我決定將列重命名爲booking_id並且使用「ON」子句,所以它更不明確「id」實際意味着什麼:D – Becky 2010-08-25 14:47:28