gpt4 book ai didi

mysql - 不像 MySQL 语句

转载 作者:行者123 更新时间:2023-11-29 08:43:37 26 4
gpt4 key购买 nike

我对 NOT LIKE 语句有疑问。我有两个 sql 表设置为标签映射。第一个表根据搜索名称查找tag_id,第二个表根据找到的tag_id查找resource_id。当我运行下面的 NOT LIKE 语句时,我收到结果:resource_id = 1。

标记 map 表

tag_id name
1 meat
2 vegetarian

resource_id tag_id
1 1
1 2

查询

SELECT 
f.id, f.food_name, tm.resource_id, tm.tag_id, t.name
FROM
tag as t, tagmap as tm JOIN item as f ON
(
f.id = tm.resource_id AND tm.tag_id IN
(
SELECT
t.tag_id
FROM
tag as t
WHERE
t.name NOT LIKE '%meat%'
)
)
GROUP by f.id

我需要这个查询做的就是,如果它找到标签名称为“meat”的resource_id,我不希望它返回这个resource_id。

如果我的解释不清楚,请告诉我。

最佳答案

那么您必须搜索:

select resource_id
from tagmap
where resource_id not in (select resource_id
from tagmap
where tag_id in (select tag_id from tag
where name like '%meat%'));

或使用加入:

select *
from tagmap
where resource_id not in (select m.resource_id
from tagmap m, tag t
where m.tag_id = t.tag_id and t.name like '%meat%');

您查找名为“meat”的resource_id,并在您的选择中排除这些not in

可能符合您的查询,但我不太确定:

select f.id, f.food_name, tm.resource_id, tm.tag_id, t.name 
from tag as t, tagmap as tm, item as f
where f.id = tm.resource_id
and tm.tag_id = t.tag_id
and tm.resource_id not in (select m.resource_id
from tagmap m, tag t
where m.tag_id = t.tag_id
and t.name like '%meat%')
group by f.id;

关于mysql - 不像 MySQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13104113/

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