我是 javascript 和 nodejs 的初学者,对 mysql 了解不多。这些是我的 MySQL 表的列名,其名称为cars
:
- 姓名
- 模型
- 传输类型
- 发动机尺寸
- 车辆尺寸
- 体型
我想随机选择Name
和model
from cars
,但类别必须匹配,这将由其他四个列决定:TransmissionType
,和EngineSize
,以这样一种方式随机选择的汽车必须共享相同的值,和。输出应该只有两行。VehicleSize
Body Type
engine
TransmissionType
VehicheSize
BodyType
发动机尺寸具有以下值:3.2, 3.5, 1.6, 5.2, 2.0, 2.2
传输类型具有值: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