我已经尝试并搜索了一段时间,我认为没有太多遗漏,但我需要帮助:
我只能通过添加(左)连接来修改查询,因为它是自动创建的查询所以它的开头是SELECT * FROM question q LEFT JOIN ...
现在是应该将每个问题(问题有一个类别 id (q.category))与类别路径连接起来的部分(如果在 php 中选择):
LEFT JOIN (
SELECT GROUP_CONCAT(cn.name SEPARATOR ' >> ') AS categorypath
FROM (
SELECT _id AS id, parent,
@cl := @cl + 1 AS level
FROM (
SELECT @r AS _id,
(
SELECT @r := parent
FROM categories
WHERE id = _id
) AS parent,
@l := @l + 1 AS level
FROM (
SELECT @r := q.category,
@l := 0,
@cl := 0
) vars,
categories qct
WHERE @r <> 0
ORDER BY
level DESC
) qi
) cp
LEFT JOIN categories AS cn ON cp.id = cn.id
) ON q.category = ...(dont know)
因此,如果我在查询中间为“q.category”填充一个值,那么这部分就没有第一个左连接工作。(例如@r := 8)但我需要它作为连接表的每个问题......
谢谢
编辑:使用的数据库将是 MySQL 数据库