更新时间:2023-12-01 10:57:16
SELECT s.name
, ( SELECT o.name
FROM Options AS o
JOIN Assoc AS a
ON a.assoc_id = o.ID
WHERE a.site_id = s.id
AND a.assoc_type='option'
ORDER BY o.id
LIMIT 1 OFFSET 0
) AS option1
, ( SELECT o.name
FROM Options AS o
JOIN Assoc AS a
ON a.assoc_id = o.ID
WHERE a.site_id = s.id
AND a.assoc_type='option'
ORDER BY o.id
LIMIT 1 OFFSET 1
) AS option2
, ( SELECT o.name
FROM Options AS o
JOIN Assoc AS a
ON a.assoc_id = o.ID
WHERE a.site_id = s.id
AND a.assoc_type='option'
ORDER BY o.id
LIMIT 1 OFFSET 2
) AS option3
FROM Sites AS s
如果要对3个表执行通常的联接,要查找所有站点和相关选项,可以使用:
If you want to perform a usual join of the 3 tables, to find all sites and related options, you can use:
SELECT s.name AS site
, o.name AS option
FROM Sites AS s
JOIN Assoc AS a
ON a.site_id = s.id
JOIN Options AS o
ON o.ID = a.assoc_id
WHERE a.assoc_type = 'option'
ORDER BY s.name
, o.name