【发布时间】:2013-10-08 09:38:38
【问题描述】:
我是 javascript 和 nodejs 的初学者,对 mysql 了解不多。
这些是我的 MySQL 表的列名,其名称为 cars:
- 姓名
- 型号
- 传输类型
- 引擎尺寸
- 车辆尺寸
- 体型
我想从cars中随机选择Name和model,但是类别必须匹配,这将由其他四个列决定:TransmissionType、EngineSize、VehicleSize和Body Type ,这样随机选择的汽车必须为engine、TransmissionType、VehicheSize 和BodyType 共享相同的值。输出应该只有两行。
引擎大小有值:3.2, 3.5, 1.6, 5.2, 2.0, 2.2
TransmissionType 具有值:Manual 和 Automatic
VehicleSize 具有值:Compact、MidSize 和 Large。
BodyType 具有值:Car、van 和 truck。
我应该编写什么查询来实现这一点?请帮忙。
我这样做了,查询工作正常,但是其中运行的子查询太多,是否可以使用不更多的 den 2-3 子查询来实现这一点?
SELECT Name, model
FROM cars
WHERE EngineSize IN (SELECT * FROM (SELECT EngineSize FROM cars ORDER BY RAND( ) LIMIT 1 ) AS A)
AND TransmissionType IN (SELECT * FROM (SELECT TransmissionType FROM cars ORDER BY RAND( ) LIMIT 1 ) AS B)
AND BodyType IN (SELECT * FROM (SELECT BodyType FROM cars ORDER BY RAND( ) LIMIT 1 ) AS C)
AND VehicleSize IN (SELECT * FROM (SELECT VehicleSize` FROM cars ORDER BY RAND( ) LIMIT 1 ) AS D)
LIMIT 2
【问题讨论】: