我有三个名为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及其所有标签?
答案 0 :(得分:0)
你在寻找两个连接吗?
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
答案 1 :(得分:0)
SELECT * FROM table_name
LEFT JOIN table_name2 ON table_name.id = table_name2.id
LEFT JOIN table_name3 ON table_name2.id = table_name3.id
WHERE table_name.id = id;
使用您正在使用的相应ID更改“id”。重要的是JOIN中的id是连贯的,否则它们之间就没有联系。
答案 2 :(得分:0)
如果要选择3个表的字段,请执行以下操作:
SELECT (fields that you want to show) FROM tableA
INNER JOIN tableB ON tableA.commonField = tableB.commonField
INNER JOIN tableC ON tableB.commonField = tableC.commonField