我正在建立一个漫画数据库。现在我有3个主表(漫画、出版商、人物)和3个连接表(person2comic、publisher2comic和person2publisher)。我希望能够有一个搜索表单,允许搜索任何组合的标题,发行编号,出版商和人。当只引用一个连接表时,我会根据正在搜索的内容使用此变量:
SELECT comicTitle, comicIssue, firstName, lastName
FROM person2comic
JOIN comics ON comics.comicID = person2comic.comicID
AND comics.comictitle LIKE "%walk%" ;
如果有人要按标题、出版商和人员进行搜索,我不知道如何设置语句,因为它需要使用两个连接表。是嵌套查询情况还是其他情况?
最佳答案
你可以有任意多个连接。不完全确定所有列名,但这应该大致有效:
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
还要注意,如果关系都不是多对多,那么模式可能效率低下。看我的评论。