我不知道这个sql,sql可以做到这一点
我有 table
表:tree_hie
cluster | id
1 | X | Y
2 | X | Y | Z
3 | A | B
表:值
id | value
x | 3
y | 3
z | 3
a | 0
b | 0
我想像这样显示
cluster | value | id
1 | 3 | x,y
2 | 3 | x,y,z
3 | 0 |a,b
你知道如何进行这样的查询吗..我不知道..非常感谢你..
最佳答案
您还可以使用replace
首先用逗号替换空格和|
管道,然后您可以使用find_in_set
select t.cluster,
min(v.`value`) as value,
group_concat(v.id order by v.id) as id
from tree_hie t
join `value` v on (
find_in_set(
v.id,replace(replace(t.id,'|',','),' ','')
) > 0
)
group by t.cluster
但是拥有这样的结构真的很糟糕,你应该关心有一个 normalized数据结构优先
关于php - SQL 不同内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29725345/