mysql - 对通过连接表连接的另一个表中的连续行进行分组

标签 mysql join relational-database outer-join

我有 3 个表:visits、visit_Services 和 services。

我想在一个查询中选择所有访问以及与其链接的服务!

我试过了

SELECT `v`.*, group_concat(s.name)
FROM `visits` `v`
left outer join `visit_service` vs on vs.visit_id = v.id
left outer join `services` s on s.id = vs.service_id
WHERE DATE(v.visit_date) = date(now())

问题是:- 1.结果只返回1次访问 anf group_concat包含所有访问的所有服务 2.这是最好的方法吗?或者如果我将订单分成 2 个查询会更好吗?

非常感谢软件社区

最佳答案

SELECT `v`.*, group_concat(s.name)
FROM `visits` `v`
left outer join `visit_service` vs on vs.visit_id = v.id
left outer join `services` s on s.id = vs.service_id
WHERE DATE(v.visit_date) = date(now())
GROUP BY v.id

请注意,仅当 full_group_by 系统变量设置为 0(默认值)时才会出现此情况

关于mysql - 对通过连接表连接的另一个表中的连续行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26146967/

相关文章:

javascript - 注册表未正确处理到数据库(PHP/MySQL)

c# - 写一个大数据表到mysql数据库c#

c# - 将数组转换为简单字符串的 C# 方法/语法是什么?

mysql - Laravel 5.4 原始连接查询

php - SQL 查询按列中的 null 对分组连接表进行计数

php - 为 PHP echo 计算并显示不同列中的多个 mysql 行值

mysql - 根据列名计算总和

oracle - 在没有不可读的动态 SQL 的情况下使用 Oracle 数据库链接

database - Oracle 表中的空白字段(即列)是否还会占用磁盘空间?

mysql - 产生以下输出的 SQL 查询?