2017-03-27 10 views
1

私はレンタカーのデータベースを持っており、どの車両が2つの日付の間に利用可能かを返すクエリを実行しようとしています。開始日と終了日を指定します。私は、私が入力した特定の日付から利用可能な車両を見たいだけです。予約可能な車両の問い合わせ

これを実行するには問題があります。現在、日付の間ではなく、すべての車両を返すだけです。車両レンタルテーブルはクエリに影響を与えるべきではありませんが、中にあります。

私はデザインポストします:

Image

サンプル:

Booking サンプル:

Answer

SELECT v.* 
FROM vehicles AS v 
LEFT JOIN (SELECT b.* 
      FROM booking AS b 
      WHERE b.end_rent_date >= 2016-12-09 and b.start_rent_date <= 2016-12-18 
     ) AS b ON v.vehicle_id = b.vehicle_id 
WHERE b.vehicle_id is null 
+0

互換性のないデータベースタグを削除しました。実際に使用しているデータベースにタグを付けてください。 –

+0

質問にはどのようなクエリの結果がありますか? –

+0

私は現在、クエリを実行するときにすべての車両を取り戻していますが、私は12月の09と18の間にレンタルされていない車を取得する必要があります –

答えて

1

PROBをレムはあなたの内側のクエリの日付です。私はMS SQLでこのような状態にエラーがないので、このRDBMSを使用している可能性があります。単に日付変換作業の権利を得るために、日付を引用符で囲みます。

SELECT v.* 
FROM vehicles AS v 
LEFT JOIN (SELECT b.* 
      FROM booking AS b 
      WHERE b.end_rent_date >= '2016-12-09' and b.start_rent_date <= '2016-12-18' 
     ) AS b ON v.vehicle_id = b.vehicle_id 
WHERE b.vehicle_id is null 
関連する問題