基于其他列筛选列的sql查询

bq8i3lrv  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(332)

我有一个如下所示的关系表:
我想写一个查询,如果我输入一个tag\u id,我需要根据下面的规则得到视频\u id。如果标签属于同一类别,则在标签之间设置或设置条件。如果标签属于不同的类别,那么标签之间的条件和关系

tag_id  pvid_id     cat_id  
1       1           1   
1       2           1   
2       2           2

在上面的例子中,
如果我将tag_id 1作为输入,则pvid_id的预期输出为1,2
如果我给tag\u id 1,2作为输入,那么pvid\u id的预期输出是2
我无法解释这个问题,有人能帮我一下吗?或者给我一个解决问题的方向?
谢谢

dbf7pr2w

dbf7pr2w1#

使用组\u concat:

select group_concat(pvid_id separator ', ') as result
  from tab
 where tag_id = 1 -- or tag_id = 2

result
 1, 2

sql fiddle演示

oknwwptz

oknwwptz2#

对于一个输入

Select tag_id, 
group_concat(distinct pvid_id) 
from your_table where tag_id=1 
group by tag_id

对于多个输入

Select tag_id, 
group_concat(distinct pvid_id) 
from your_table where tag_id 
in('1','2')
group by tag_id

相关问题