gpt4 book ai didi

mysql - <> 通过 MySQL 中的 INNER JOIN 查询出现问题

转载 作者:行者123 更新时间:2023-11-29 04:23:44 26 4
gpt4 key购买 nike

我试图通过名称查找标签,但前提是关系表中不存在对它的引用:

SELECT
tags.tag_id, tags.tag
FROM
tags
INNER JOIN
bookmarks_tags
ON
(bookmarks_tags.user_id = tags.user_id)
WHERE
(tags.user_id = '1')
AND
(tags.tag LIKE '%Jose%')
AND
(bookmarks_tags.tag_id NOT IN (tags.tag_id))
GROUP BY tags.tag_id

我已经尝试了“!=”、“<>”和以上的组合,在我能想到的几乎所有排列中,但没有一个排除“Jose”,鉴于该标签存在于“标签”表和包含引用的“书签标签”表。

有什么想法吗?

最佳答案

执行 LEFT JOIN 并排除匹配的行:

SELECT tags.tag_id, tags.tag
FROM tags
LEFT JOIN bookmarks_tags
ON bookmarks_tags.user_id = tags.user_id
AND bookmarks_tags.tag_id = tags.tag_id
WHERE tags.user_id = 1
AND tags.tag LIKE '%Jose%'
AND bookmarks_tags.tag_id IS NULL

或者,您可以使用子查询:

SELECT tag_id, tag
FROM tags
WHERE user_id = 1
AND tag LIKE '%Jose%'
AND tag_id IS NULL
AND tag_id NOT IN (SELECT tag_id FROM bookmarks_tags WHERE user_id = 1)

我更喜欢第一个选项。

关于mysql - <> 通过 MySQL 中的 INNER JOIN 查询出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16373318/

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