私は指定された目的地のために与えられたタイムスロット(2016-04-22から2016-04-23)で利用可能な車の総量を表示する選択をしようとしています。MySQL - 利用可能な日付を見つけよう
この場合、マンダルでレンタル可能な車の数を確認したいと思います。しかし、私の質問では、目的地を指定したにもかかわらずMandalにない利用可能な車の合計量も与えられます。上記のクエリを実行する
SELECT destination, COUNT(destination) AS 'available cars'
FROM cars
LEFT JOIN orders
ON cars.id = orders.car_id
WHERE orders.car_id IS NULL
OR date_to NOT BETWEEN '2016-04-22' AND '2016-04-23'
AND date_from NOT BETWEEN '2016-04-22' AND '2016-04-23'
AND destination = 'Mandal'
GROUP BY destination
は私に次の表に示します: http://i.stack.imgur.com/Ck0s0.png
をマーンダルで利用可能な車と一緒にも表示されるように想定されていないスタヴァンゲルで唯一利用できる車を返すも、それが正しいですか。スタヴァンゲルでは、利用可能な2台の車(別の時間に借りているもの、NOT BETWEEN '2016-04-22' AND '2016-04-23'
、まだ賃貸されていないもの、orders.car_id IS NULL
)があります。しかし、Mandalの利用可能な車の量は正しいです。現在使用しているとして、彼らはグループ化するために使用することができますように複雑WHERE
句を構築する際に
括弧を使用してください。 ORより強くバインドします –
サンプルデータと望ましい結果は、あなたがしようとしていることを伝えるのに役立ちます。 –
どのDBMSを使用していますか? –