gpt4 book ai didi

mysql - SELECT 标签和项目的关联

转载 作者:行者123 更新时间:2023-11-29 06:58:58 25 4
gpt4 key购买 nike

我正在使用标签数据库,并且想知道如何构建查询来获取标签列表,标记应用于给定项目的每个标签,如下所示:

Table 1
item name | item ID
---------------------
One | 1
Two | 2
Three | 3

Table 2
tag name | tag ID
--------------------
Tag1 | 1
Tag2 | 2
Tag3 | 3

Mapper
tag ID | item ID | map ID
--------------------------------
1 | 1 | 1
1 | 3 | 2
3 | 1 | 3

Tags for item One
tag name | is_tagged
-------------------------------
Tag1 | *
Tag2 |
Tag3 | *

我该怎么做?

最佳答案

这是一种简单的方法:

select t.tagname,
(case when exists (select 1
from mapper m join
items i
on m.item_id = i.item_id
where i.item_name = 'One' and
m.tag_id = t.tag_id
)
then '*' else ''
end) as is_tagged
from tags t;

您还可以使用左连接来编写:

select t.tagname,
(case when i.item_id is not null then '*' else ''
end) as is_tagged
from tags t left join
mapper m
on m.tag_id = t.tag_id left join
items i
on m.item_id = i.item_id and i.item_name = 'One'

关于mysql - SELECT 标签和项目的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44319878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com