車のデータベースがあり、車の各メーカーとモデルの1 つを取得しようとしています。例: トヨタ カローラが 3 台、ホンダ シビックが 4 台、アキュラ RSX が 5 台あります。クエリは、Toyota Corolla、Honda Civic、および Acura RSX を 1 つずつ返す必要があります。これをコーディングすることはできますが、クエリには多くのコードの繰り返しがあります。
SELECT
*
FROM
main
WHERE
( make_name = 'TOYOTA' AND model_name = 'CELICA' AND chassis = 'GT4' )
AND
mileage <= 100000
AND
rate >= '3.5'
AND
( year >= 1990 and year <= 1998 )
ORDER BY
auction_date DESC,
rate DESC
LIMIT
1
)
UNION
(
SELECT
*
FROM
main
WHERE
( make_name = 'NISSAN' AND model_name = 'SKYLINE' AND chassis = 'R33' )
AND
mileage <= 100000
AND
rate >= '3.5'
AND
( year >= 1990 and year <= 1998 )
ORDER BY
auction_date DESC,
rate DESC
LIMIT
1
)
つまり、トヨタ セリカ GT4 1 台と日産 スカイライン R33 1 台を牽引します。ただし、各車の走行距離、料金、年式の条件を繰り返します。このクエリには必要な 2 台の車がありますが、基本的には時間の経過とともにさらに追加されるため、車ごとに WHERE 条件を繰り返さずにこのクエリに追加する方法が必要です。