0

我正在处理一个查询,但不能让它做我想做的事。

我有这张桌子:家庭

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

4

0 回答 0