哪些标签不在数据库中?

时间:2008-11-24 16:30:50

标签: sql mysql

给定用户指定标签的集合,如何使用1个SQL语句确定标签表中哪些

假设一个表模式tags (id, tag)并且我正在使用mysql,如果有一个我不知道的优化。

感谢

3 个答案:

答案 0 :(得分:4)


SELECT  Tag
FROM    UserSpecifiedTags
  LEFT OUTER JOIN AllTags ON UserSpecifiedTags.Tag = AllTags.Tag
WHERE   AllTags.Tag IS NULL

这应该返回你想要的东西。根据我的经验,执行联接并查找没有匹配的行比使用IN运算符更快

答案 1 :(得分:1)

select * from canonical_list_of_tags where tag not in (select tag from used_tags) 

至少适用于SQL Server的T-SQL ...

修改:假设表canonical_list_of_tags填充了“给定用户指定标记的集合

的结果

答案 2 :(得分:0)

select
    utt.tagName
from
    userTypedTags utt
    left join tag t on utt.tagName = t.tag
where
    t.ID is null
    and utt.userID = <ID of the User in question>

假设你有桌子

userTypedTags(userID, tagName)

我添加了related question