我有几张表有以下关系: -
publications->id name
categories->id name
types->id name
program->id name
出版物可以有许多类别,许多类型和许多程序。同样,每个出版物都有许多出版物。因此,发布表与这些表中的每一个都有很多关系。 因此,我为每个表创建了关联表,并将以下三个表放在上面以连接上述每个
pub_cat ->publicationid categoryid
pub_type->publicationid typeid
pub_prog->publicationid programid
现在我必须找到所有出版物的名称,例如categoryid = 2,typeid = 2和programid = 1
我对这些复杂的查询非常了解,我们将非常感谢任何帮助。
答案 0 :(得分:0)
你应该看一下你加入所有表的连接,并在where子句中说明你想要找到的内容。一个例子可能是:
SELECT * FROM t1 LEFT JOIN (t2, t3, t4)
ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)
WHERE t2.a = 1;
这只是这里MySQL Refeerence
的一个例子答案 1 :(得分:0)
好的,我刚刚解决了这个问题。谢谢@ eggyal,@ raphael
select id,title,pub_cat.catid,pub_prog.progid,pub_type.typeid from publications
inner join pub_cat on publications.id=pub_cat.pubid
inner join pub_prog on publications.id=pub_prog.pubid inner join pub_type
on publications.id=pub_type.pubid where pub_type.typeid=6 and pub_cat.catid=7
and pub_prog.progid=1;