【发布时间】:2011-11-09 19:33:04
【问题描述】:
我试图从一个表中随机抓取大约 20 个随机行,然后使用 INNER JOIN 命令,根据一个通用 ID 从不同的表中向这些行添加大约 7 列附加数据。
该数据库包含 2 个表,第一个(列表)由 id(有孔)索引,第二个(列表元素)对于第一个表中的每个 id 有 7 个 field_name/field_value 对。我对其中 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() 效果很好,但是查询在转到下一项之前不会抓取 INNER JOIN 列。
【问题讨论】:
-
listingsdbelements 有轻微错字? on 子句显示列表元素(无 db)
-
是的,刚刚更正了,我更改了问题的变量名,因为它们太长了。
标签: sql