私は2つのテーブル:Vehicles(Id、VIN)とImages(Id、VehicleId、Name、Default)を持っています。私はテーブルに表示する車両のVINとそのデフォルトの画像を選択する必要があります。私が抱えている問題は、デフォルトのピクチャが設定されていない場合でも、それが存在する場合に表示するイメージを選択したいということです。画像が存在しない場合、車両情報も明らかに表示されなければならない。ここで私はこれまで持っているものです。MySQLの複雑なクエリが適切な結果をもたらさない
SELECT
Vehicles.Id, Vehicles.VIN, Images.Name AS Image,
(SELECT COUNT(*) FROM Images WHERE VehicleId = Vehicles.Id) AS ImageCount
FROM
Vehicles
LEFT JOIN
Images ON Images.VehicleId = Vehicles.Id
WHERE
Images.Default = 1
この文では、デフォルトのイメージを持っている車が表示されますが、デフォルトが設定されていない場合何を表示しません。より良いここに私の問題を記述するために
は、いくつかのテストデータです:
VEHICLES:
ID VIN
1 12341234123412341
2 23452345234523452
3 34534534534534534
IMAGES:
ID VEHICLEID NAME DEFAULT
1 1 a 1
2 1 b 0
3 2 c 0
4 2 d 0
車両2は、私はそれが表示する画像を選択したいデフォルトはありませんにもかかわらず。また、車両3には画像が全くありませんが、まだ画像がない状態でテーブルに表示する必要があります。車両1は設定されているため、デフォルト画像を表示します。私はこれが物事をクリアすることを願っています。デフォルトは1に設定されたという事実によって制限されたよう
新しいものを作成しないでください。 – Brandon
この重複した質問でここに答えるのではなく、オリジナルの質問に自分の答えを加えました。 –
私はここで私の答えを追加し、今も他の質問にそれを貼り付けました:) –