php - 如何获取与mysql中的concat值字段相关的COUNT和INNER JOIN

标签 php mysql count inner-join concatenation

我有 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/

相关文章:

python - 在 Python 中使用 Pandas Dataframes 对数据进行排序

php - 列中的复选框数据?

php - Twitter bootstrap 模式显示然后消失

mysql - 如何以 15 分钟的间隔从多个表中提取值?

c++ - 如何使用 SOCI 库将变量绑定(bind)到准备好的语句?

sql - 获取用户名大小写不同的用户总数

php - rss feed 和 cdata 的问题

php - 使用 php 在 XMPP 上创建聊天应用程序

MySQL:24 小时间隔连接

Mysql统计,返回所有字段,如果没有统计则返回0