gpt4 book ai didi

mysql - GroupBy ID 但保留多个值

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

我有以下 MySQL 表:

+----------+----------+---------+-------------+------------+----------+----------+-----------+
| queue_id | email_id | user_id | customer_id | send_date | campaign | approved | scheduled |
+----------+----------+---------+-------------+------------+----------+----------+-----------+
| 1 | 1 | 1 | 1 | 2018-10-30 | 1 | 1 | 1 |
| 2 | 1 | 2 | 1 | 2018-10-30 | 1 | 1 | 1 |
| 3 | 2 | 1 | 1 | 2018-11-02 | 1 | 1 | 1 |
| 4 | 2 | 2 | 1 | 2018-11-02 | 1 | 0 | 1 |
| 5 | 2 | 3 | 1 | 2018-11-02 | 1 | 1 | 1 |
+----------+----------+---------+-------------+------------+----------+----------+-----------+

其中email_iduser_idcustomer_id都是外键。

我需要做的是返回 send_datesubject(这是 email_id< 的 email 表的一部分 引用)和 name(它是 user_id 引用的 business 表的一部分)但仅适用于 >approved 列为真。这个想法是最终在 HTML 表格中向用户显示数据,表格如下所示(使用提供的示例数据):

+--------------------+--------------------------+---------------+
| October 30th, 2018 | Subject for email_id "1" | View Approved |
| November 2nd, 2018 | Subject for email_id "2" | View Approved |
+--------------------+--------------------------+---------------+

只要用户点击“查看已批准”单元格,它就会显示批准该特定电子邮件的所有公司名称。

我尝试使用以下查询,但它只在 name 列中返回一个值:

SELECT
DATE_FORMAT(q.`send_date`, "%M %D, %Y") AS `date_visited`,
e.`subject`,
b.`name`
FROM
`email_queue` AS q
INNER JOIN
`email` AS e ON q.`email_id` = e.`email_id`
INNER JOIN
`user` AS u ON q.`user_id` = u.`user_id`
INNER JOIN
`business` AS b ON u.`business_id` = b.`business_id`
WHERE
q.`approved` = true
GROUP BY
e.`email_id`
ORDER BY
q.`send_date` DESC

如何构建我的查询以返回 name 列中的所有公司名称,而不是仅返回一个?

最佳答案

您可以使用 Group_Concat() 以逗号分隔的字符串形式获取所有未确定的企业名称带有 Distinct 子句的函数。

尝试:

GROUP_CONCAT(DISTINCT b.`name` SEPARATOR ',') AS name  

代替:

b.`name`

注意:

  • 您可以避免使用 Distinct 子句,如果不会有任何重复的 user_id(对于特定的 email_id),从而确保b.name 也是唯一的。
  • 您也可以使用任何分隔符,而不是逗号。例如:要将分隔符用作管道字符 |,您可以将查询编写为:

    GROUP_CONCAT(DISTINCT b.nameSEPARATOR '|') AS name

关于mysql - GroupBy ID 但保留多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52611300/

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