gpt4 book ai didi

MySQL - 每个类别选择一个条目

转载 作者:行者123 更新时间:2023-11-29 05:24:27 24 4
gpt4 key购买 nike

我很抱歉。我已将下面的内容编辑成 2 个表格,我只是有点困惑。


我有一个与下面的表格非常相似的表格,我想显示所有 table2-class 1,但每个 table1-category 只显示 1 个随机项目

示例项目表 1

+---------+---------------+---------------+|   ID    |   Item Name   |    Category   |+---------+---------------+---------------+|   01    |    Item A     |     Cat 1     ||   02    |    Item B     |     Cat 1     ||   03    |    Item C     |     Cat 2     ||   04    |    Item D     |     Cat 2     ||   05    |    Item E     |     Cat 3     ||   06    |    Item F     |     Cat 3     |+---------+---------------+---------------+

示例项目表 2

+---------------+---------------+|    Category   |     Class     |+---------------+---------------+|     Cat 1     |       1       ||     Cat 2     |       1       ||     Cat 3     |       2       |+---------------+---------------+

我想显示所有 table2-class 1 但每个 table1-category 只显示 1 个随机项目

期望的结果

+---------+---------------+---------------+|   02    |    Item B     |     Cat 1     ||   03    |    Item C     |     Cat 2     |+---------+---------------+---------------+

(这是在我的 PHP 脚本中)

提前致谢

最佳答案

你可以这样做

SELECT t.id, itemname, category
FROM
(
SELECT
(
SELECT id
FROM table1
WHERE category = t.category
ORDER BY RAND()
LIMIT 1
) id
FROM table1 t
GROUP BY category
) q JOIN table1 t
ON q.id = t.id

注意:使用 RAND() 的成本非常高

输出:

| ID | ITEMNAME | CATEGORY ||----|----------|----------||  1 |   Item A |    Cat 1 ||  3 |   Item C |    Cat 2 ||  6 |   Item F |    Cat 3 |

这是 SQLFiddle 演示

关于MySQL - 每个类别选择一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21818761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com