另一个表中的group_concat行按连接表连接

时间:2014-10-01 17:21:37

标签: mysql join relational-database outer-join

我有3个表:访问,访问服务和服务。

我想在一个查询中选择所有访问次数和与之关联的服务!

我试过

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个查询,它会更好吗?

非常感谢sof社区

1 个答案:

答案 0 :(得分:0)

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 systemvariable设置为0(默认值)

时才会这样