我有三个称为Notes的表,另一个称为Tags的表,第三个是称为NoteTagsJoin的联接表,联接表包含两个外键,分别是主注释id和主标记id。我使用此查询来获取所有具有tagId的Notes:

SELECT * FROM notes INNER JOIN note_tag_join ON notes.entryId = note_tag_join.noteId WHERE note_tag_join.tagId =:tagId


并通过此查询获取所有标签:

SELECT * FROM tags INNER JOIN note_tag_join ON tags.tagId = note_tag_join.tagId WHERE note_tag_join.noteId =:noteId


如何通过一个查询仅使用Note id来获取Note及其所有标签?

最佳答案

您是否正在寻找两个联接?

SELECT n.*, t.*
FROM notes n INNER JOIN
     note_tag_join nt
     ON n.entryId = nt.noteId INNER JOIN
     tag t
     ON t.tagId = nt.tagId
WHERE n..entryId = :noteId

关于mysql - MySQL查询使用多对多关系联接两个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50564755/

10-10 08:52