查询从2个连接表中提取数据

时间:2015-04-23 17:05:45

标签: mysql junction-table

我正在为漫画创建数据库。现在我有3个主表(漫画,发布者,人)和3个联结表(person2comic,publisher2comic和person2publisher)。我希望能够有一个搜索表单,允许按标题,发行号,发布者和个人的任意组合进行搜索。当仅引用一个联结表时,我会根据搜索的内容使用其中的变体:

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

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

1 个答案:

答案 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

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