我正在为漫画创建数据库。现在我有3个主表(漫画,发布者,人)和3个联结表(person2comic,publisher2comic和person2publisher)。我希望能够有一个搜索表单,允许按标题,发行号,发布者和个人的任意组合进行搜索。当仅引用一个联结表时,我会根据搜索的内容使用其中的变体:
SELECT comicTitle, comicIssue, firstName, lastName
FROM person2comic
JOIN comics ON comics.comicID = person2comic.comicID
AND comics.comictitle LIKE "%walk%" ;
如果有人按标题,发布者和个人搜索,我不确定如何设置语句,因为它需要使用两个联结表。它是嵌套查询情况还是其他什么?
答案 0 :(得分: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
另请注意,如果您的关系并非多对多,那么您的架构可能效率低下。看我的评论。