选择未标记的文档

时间:2013-12-22 03:00:20

标签: mysql join

假设我的数据库有3个表:

Documents
Tags
Documents_Tags (the join table)

我知道如何使用LEFT JOIN找到分配给文档的标签,但是我找不到未分配的标签。

SELECT * FROM `documents_tags`
    LEFT JOIN `tags` ON `tags`.`id` = `documents_tags`.`tag_id`
    WHERE `document_id` = 111;

我尝试了不同的连接,但我只获得了一条记录。我认为有一种方法可以连接所有标签,然后将结果限制为文档为空的位置?

编辑:在上面的示例中,我需要查找未分配给文档111的所有标记。

1 个答案:

答案 0 :(得分:2)

SELECT Tags.name -- or whatever it is
FROM
    tags
    LEFT JOIN documents_tags dt ON (tags.id = dt.tag_id AND dt.document_id = 111)
WHERE dt.id IS NULL