gpt4 book ai didi

MySql:选择具有所有值的项目

转载 作者:行者123 更新时间:2023-11-29 02:19:53 26 4
gpt4 key购买 nike

我有一个包含 3 列的 Mysql 表:id、company_id 和 tag_id。它用于将公司和标签链接在一起。表架构:

CREATE TABLE tbl_company_tag_link (
id BIGINT NOT NULL AUTO_INCREMENT,
company_id BIGINT NOT NULL,
tag_id BIGINT NOT NULL,
PRIMARY KEY(id)
);

任何公司都可以链接到任意数量的标签。我需要选择附有所有指定标签的公司。例如,我需要 company_id 有 tag_id = 1,2,3(全部!)我得到的查询很丑陋:

SELECT company_id, GROUP_CONCAT(tag_id) as group_concat_tag_id
FROM tbl_company_tag_link
WHERE tag_id IN (1,2,3)
GROUP BY company_id
HAVING group_concat_tag_id = "1,2,3"

我需要编写查询的帮助,那会很快。

我已经使用我的模式和查询创建了 sqlfiddle 以进行快速测试:http://sqlfiddle.com/#!9/2416f/2

为时已晚,找到了具有详细答案的相同问题:Need help with sql query to find things tagged with all specified tags

最佳答案

你可以试试这个:

SELECT company_id
FROM tbl_company_tag_link
WHERE tag_id IN (1,2,3)
GROUP BY company_id
HAVING COUNT(DISTINCT tag_id ) = 3

SQL FIDDLE DEMO

关于MySql:选择具有所有值的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33562341/

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