我有一个需求,需要在联接中返回与会话相关的所有教育工作者的连接列表(不要问我为什么 - 我知道有多种方法可以做到,但我正在使用一个不接受这些方法的库 ;-))。
我有一个包含
到目前为止,这似乎是我所能达到的最接近的:
任何帮助都受到高度赞赏 - 即使只是说它不能被完成!
我有一个包含
session_id
和session_name
的sessions
表。| session_id | session_name |
+------------+--------------+
| 1 | Swimming |
| 2 | Chess |
我有一个 session_educators
表格,它基本上是一个连接表格,包含了session_id
和contact_id
。
| session_id | contact_id |
+------------+------------+
| 1 | 1 |
| 1 | 2 |
| 2 | 3 |
| 2 | 4 |
我有一个名为contacts
的表,其中包含contact_id
和full_name
两个字段。
| contact_id | full_name |
+------------+--------------+
| 1 | Fred Bloggs |
| 2 | Mary Bloggs |
| 3 | Mark Smith |
| 4 | Shelly Smith |
到目前为止,这似乎是我所能达到的最接近的:
SELECT
sessions.session_id,
sessions.name,
educators.names
FROM
`sessions`
LEFT JOIN
(
SELECT
GROUP_CONCAT(contacts.full_name SEPARATOR ', ') as names
FROM
`contacts`
WHERE
contact_id
IN
(
SELECT
contact_id
FROM
session_educator
WHERE
session_educator.session_id = sessions.session_id
)
) `educators`
USING
(`session_id`)
但是我真的在摸索着弄清楚它,有人能帮忙吗?
从查询中可以看出,我想要的结果就像这样:
| session_id | session_name | educators |
+------------+--------------+--------------------------+
| 1 | Swimming | Fred Bloggs, Mary Bloggs |
| 2 | Chess | Mark Smith, Shelly Smith |
任何帮助都受到高度赞赏 - 即使只是说它不能被完成!