0
嗯,我有两个表格,类别和项目,我想获得10个随机类别中的每一个的随机记录。获取每个类别的随机项目
tb_category
category_id PK
category_name
tb_items
item_id PK
category_id FK
我的表tb_category大约有40行,tb_items大约有5K行,我是搜索性能。
SELECT * FROM
(SELECT c.category_id as cid, c.category_name, i.item_id FROM
tb_category c INNER JOIN
tb_items i ON c.category_id = i.category_id ORDER BY RAND()) AS ShuffeledItems
GROUP BY ShuffeledItems.cid limit 10
我不知道这是否是更好的方法来做到这一点。
谢谢。
ü想想这是什么:选择b.category_name,a.item_id从tb_items一个内部联接tb_category B关于b.category_id = a.category_id group by a.category_id order by rand()limit 10,但我tnink你的解决方案是更好的因为这个查询可能会慢是不是? –
@JessicaBelao。 。 。您的版本没有正确使用'group by'。它使用了MySQL中可用的(错误)功能,它不同于ANSI标准,并且在大多数数据库中不起作用。 –
你的版本更好吗? –