我有 2 张 table
table A
tag_id | Tag_name
1 | tg1
2 | tg2
3 | tg3
4 | tg4
表B
id | name |tag_id
1 | avq | 1,2,4
2 | bdq | 2
3 | abc | 3,2
4 | vdf | 1,4
5 | zxc | 3
我想要内连接两个表,并使用以下格式的tag_id获取其计数
`tg1=> 2,tg2=> 3,tg3=> 2,tg4=> 2`
如何在单个 MySQL 查询中实现这一点?
最佳答案
最好的选择是标准化第二个表并创建一个关联表来存储标签id和第二个表的id。同时,以下内容应该可以完成这项工作,但从长远来看,您需要规范化表格,否则将来会发生更多问题
select
t1.Tag_name, count(*) as total
from tableA t1
join tableB t2 on find_in_set(t1.tag_id,t2.tag_id) > 0
group by t1.tag_id ;
关于php - 如何获取与mysql中的concat值字段相关的COUNT和INNER JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32964966/