2016-09-07 8 views
2

私はPHPで動作するようにクエリを取得しようとしています。基本的にはまず、特定の予約が行われていないことを確認してから、使用可能なすべての車両とドライバをデータベースに照会します。IF関数のサブクエリでMysqlを選択

これは、クエリは、これまでのところです:

IF EXISTS(SELECT * FROM bookings LEFT JOIN status WHERE bookings.status_id = '.$booking.') 
      BEGIN 
       select * 
       FROM bookings  as b 
       LEFT JOIN drivers as d where b.driver_id !="d.driver_id" 
       LEFT JOIN vehicles as v where b.vehicle_id !="v.vehicle_id" 
       LEFT JOIN status as s where b.status_id !="'.$booking.'" 
       ORDER BY b.bookingDate DESC 
      END 
+0

だから、問題は何ですか? –

+2

最も簡単な(通常の)方法は、2つの別々のDB呼び出しを行うことです –

+0

IF()関数がいくつかの予約があることをテストする必要があります。そうでなければサブクエリを実行します...現時点ではエラーになりません、私はgoogle'dのヒントと他の方法を試みたが、運がない。 php var $ bookingから提供された値をテストする必要があります。 –

答えて

0

参加予約:

SELECT * 
FROM bookings  as b 
LEFT JOIN drivers as d where b.driver_id !="d.driver_id" 
LEFT JOIN vehicles as v where b.vehicle_id !="v.vehicle_id" 
LEFT JOIN status as s where b.status_id !="'.$booking.'" 
CROSS JOIN (
    SELECT 1 
    FROM bookings 
    WHERE bookings.status_id = '.$booking.' 
    LIMIT 1 
) t 
ORDER BY b.bookingDate DESC 
関連する問題