【问题标题】:group concat rows from another table joined by join table将另一个表中的连续行分组,由连接表连接
【发布时间】:2014-10-01 17:21:36
【问题描述】:

我有 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 个查询会更好?

非常感谢社区

【问题讨论】:

  • 你忘记了 GROUP BY v.id
  • 哎哟。你太棒了!这解决了问题!谢谢@Gervs
  • 我已经给出了答案,所以可以将其标记为已解决

标签: mysql join relational-database outer-join


【解决方案1】:
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(默认)时

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多