假设我有一个名为 Appointments 的表,另一个名为 Clients 的表和一个名为 ClientsAppointments 的连接表,它关联了上述两个表。这用于客户端可以有多个约会,并且多个客户端可以参加同一个约会(nn 关系)的场景。
我想列出约会,其中“客户”字段是与该约会相关的所有客户的数组。到目前为止我已经尝试过:
SELECT * FROM Appointments a
INNER JOIN ClientsAppointments ca ON ca.IdAppointment = a.IdAppointment
INNER JOIN Clients c ON c.IdClient = ca.IdClient
这当然行不通。它给了我一份与他们拥有的每个客户重复的约会清单。然后在 PHP 中我会处理它们来实现这一点。这种方式似乎比进行多次查询更有效,因为每次约会通常只有一个客户。
表模式(这些不是实际的表,但为了说明情况而进行了简化):
Appointment(
INT idAppointment,
DATETIME start,
DATETIME end)
Clients(
INT idClient,
VARCHAR name)
ClientsAppointments(
INT idAppointment,
INT idClient)