1

次の関係を持つテーブルはほとんどありません:-

publications->id name  
categories->id name
types->id name
program->id name

パブリケーションには、多くのカテゴリ、多くのタイプ、および多くのプログラムを含めることができます.. 同様に、各パブリケーションには多くのパブリケーションがあります。したがって、発行テーブルには、これらの各テーブルと多対多の関係があります。したがって、それらのそれぞれに関連付けられたテーブルを作成し、上記のそれぞれをリンクするために以下の 3 つのテーブルを作成しました

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 に答える