假设我的数据库有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
的所有标记。
答案 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