mysql查询

js81xvg6  于 2021-06-23  发布在  Mysql
关注(0)|答案(3)|浏览(245)

我有三张table叫 Notes 另一张table叫 Tags 第三个是连接表,称为 NoteTagsJoin ,联接表包含两个外键primary note id和primary tag id。我使用此查询获取具有tagid的所有注解:

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及其所有标记?

r3i60tvu

r3i60tvu1#

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。连接中的id是一致的,这一点很重要,否则它们之间就没有链接了。

jdzmm42g

jdzmm42g2#

如果要选择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
wpcxdonn

wpcxdonn3#

你在找两个接头吗?

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

相关问题