从 2 个联结表中提取数据的查询

Query to Pull Data from 2 Junction Tables

我正在为漫画创建数据库。现在我有 3 个主要 tables(漫画、出版商、人物)和 3 个联结 tables(person2comic、publisher2comic 和 person2publisher)。我希望能够有一个搜索表单,允许通过标题、期号、出版商和人物的任意组合进行搜索。当仅引用一个交汇点 table 时,我根据要搜索的内容使用此变体:

SELECT comicTitle, comicIssue, firstName, lastName 
FROM person2comic 
JOIN comics ON comics.comicID = person2comic.comicID 
AND comics.comictitle LIKE "%walk%" ;

如果有人要按标题、出版商和人物进行搜索,我不确定如何设置语句,因为它需要使用两个联结点 table。是嵌套查询情况还是其他情况?

您可以有任意多个连接。不完全确定你所有的列名,但这应该大致有效:

SELECT * 
FROM people
JOIN person2comic p2c ON people.id = ptc.person
JOIN comic ON p2c.comic = comic.id
JOIN publisher2comic pub2c ON comic.id = pub2c.comic
JOIN publisher ON pub2c.publisher = publisher.id

另请注意,如果您的关系不是多对多关系,您的架构可能效率低下。看我的评论。