mysql - 如何从查询中获取 X 个随机记录
问题描述
我在这里有这个主要查询:
SELECT tbl_vehicles.id, tbl_vehicles.Model, tbl_vehicles.Brand, tbl_vehicles.isAutoTrans, tbl_vehicles.Seats, tbl_vehicles.Price, tbl_brands.BrandName
FROM tbl_vehicles
INNER JOIN tbl_brands
ON tbl_vehicles.Brand=tbl_brands.id
ORDER BY id
我需要得到上述查询的 9 个随机结果。我在这里找到了这个答案,这正是我所需要的。
SELECT * FROM tbl_vehicles AS r1 JOIN (SELECT CEIL(RAND() * (SELECT MAX(id) FROM tbl_users)) AS id) AS r2 WHERE r1.id >= r2.id ORDER BY r1.id ASC LIMIT 9
我怎样才能把它们放在一起并保持我的内在联系?
显然我的结构是错误的,但为什么呢?
SELECT * FROM tbl_vehicles INNER JOIN tbl_brands ON tbl_vehicles.Brand=tbl_brands.id ORDER BY id AS r1 JOIN (SELECT CEIL(RAND() * (SELECT MAX(id) FROM tbl_users)) AS id) AS r2 WHERE r1.id >= r2.id ORDER BY r1.id ASC LIMIT 9
解决方案
我需要得到上述查询的 9 个随机结果
这还不够吗?
SELECT
v.id, v.Model, v.Brand, v.isAutoTrans, v.Seats, v.Price, b.BrandName
FROM
tbl_vehicles v
INNER JOIN tbl_brands v ON v.Brand = b.id
ORDER BY
RAND()
LIMIT 9;