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標準,並且在大多數數據庫中不起作用。 –
你的版本更好嗎? –