Sql 抓取随机行,同时保持其他表之间的顺序

Sql 抓取随机行,同时保持其他表之间的顺序,sql,Sql,我试图从一个表中随机抓取大约20个随机行,然后使用INNER JOIN命令,根据一个公共ID向另一个表中的这些行添加大约7列附加数据 该数据库包含2个表,第一个列表由具有孔的id索引,第二个listingselements对第一个表中的每个id有7个字段\名称/字段\值对。我对其中的5个感兴趣 我不知道该怎么做。它可以在数据库中完成,还是应该以编程方式在多个查询中完成 SELECT listings.id, listings.title, listings.featured, listingse

我试图从一个表中随机抓取大约20个随机行,然后使用INNER JOIN命令,根据一个公共ID向另一个表中的这些行添加大约7列附加数据

该数据库包含2个表,第一个列表由具有孔的id索引,第二个listingselements对第一个表中的每个id有7个字段\名称/字段\值对。我对其中的5个感兴趣

我不知道该怎么做。它可以在数据库中完成,还是应该以编程方式在多个查询中完成

SELECT listings.id, listings.title, listings.featured, listingselements.field_name, listingselements.field_value 
FROM listings
INNER JOIN listingselements 
ON listings.id = listingselements.id
WHERE RAND()<(SELECT ((20/COUNT(*))*10) FROM listings)
AND (listingselements.field_name = "price"
OR listingselements.field_name = "bathrooms"
OR listingselements.field_name = "bedrooms"
OR listingselements.field_name = "sq_meter"
OR listingselements.field_name = "city")
ORDER BY RAND();

WHERE/ORDER BY RAND非常有效,但是在进入下一项之前,查询不会获取内部联接列。

尝试将随机的20%放入from子句的内部select中

select inner_listings.id, inner_listings.title, inner_listings.featured,
  listingselements.field_name, listingsdbelements.field_value
from 
  (SELECT listings.id, listings.title, listings.featured
  FROM listings
  WHERE RAND()<(SELECT ((20/COUNT(*))*10) FROM listings)
  ORDER BY RAND()) inner_listings 
inner join listingselements ON inner_listings.id = listingselements.id
where (listingselements.field_name = "price"
  OR listingselements.field_name = "bathrooms"
  OR listingselements.field_name = "bedrooms"
  OR listingselements.field_name = "sq_meter"
  OR listingselements.field_name = "city")

listingsdbelements的轻微输入错误?on子句显示listingselements no dbYeah刚刚更正,我更改了问题的变量名,因为它们太长了。