我正在处理一个查询,但不能让它做我想做的事。
我有这张桌子:家庭
family.id
family.name
family.related
有了这个内容:
id | name | related
1 | Name1 |
2 | Name2 | 3,5
3 | Name3 |
4 | Name4 |
5 | Name5 | 4,1
正如你所看到的,id 2 有相关的 (ids)3,5 但是如果你去 (id)5 你会得到另一个相关的 (ids)4,1
所以当我选择 family.id 2 我想输出:3,5,4,1
这可以通过 1 个查询来实现吗?
以下查询将我带到 3,5 :
SELECT
GROUP_CONCAT(related1.related) AS related_ids,
family.id AS id,
family.name AS name,
family.related AS related
FROM family family
LEFT JOIN family related1
ON FIND_IN_SET(family.id, related1.related) >0
WHERE family.id=5
我想让 related_ids 包含 3,5,4,1