1

我有几个具有以下关系的表:-

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

我对这些复杂的查询很陌生,任何帮助都将不胜感激。

4

2 回答 2

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 参考的一个例子

于 2012-05-18T09:31:40.377 回答
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;
于 2012-05-18T09:44:03.353 回答