我有一个汽车数据库,我正在尝试提取每种品牌和型号的汽车。示例:有三辆丰田卡罗拉、四辆本田思域和五辆讴歌 RSX。查询应返回一辆 Toyota Corolla、一辆 Honda Civic 和一辆 Acura RSX。我可以对此进行编码,但是查询中有很多重复的代码。
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
)
因此,这将拉动一辆丰田 Celica GT4 和一辆日产 Skyline R33。但我重复每辆车的里程、费率和年份的条件。这个查询有两辆车我需要,但基本上我会随着时间的推移添加更多,所以我想要一种方法来添加到这个查询中,而不需要为每辆车重复 WHERE 条件,因为它们总是相同的。