1

我正在为漫画创建一个数据库。现在我有 3 个主表(comics、publishers、people)和 3 个联结表(person2comic、publisher2comic 和 person2publisher)。我希望能够有一个搜索表单,允许按标题、期号、出版商和人员的任意组合进行搜索。当只引用一个联结表时,我会根据要搜索的内容使用它的变体:

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

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

4

1 回答 1

1

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

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

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

于 2015-04-23T17:23:45.337 回答