1

私はいくつかのSQLについて本当に助けが必要です。

質問1:

アセットのテーブル内に対応する「presentationid」がある場合、「プレゼンテーション」に属するすべての「アセット」を簡単に取得できます。

SELECT * FROM asset WHERE presentationid = 3

しかし、参加して同じことを達成するにはどうすればよいですか? 最適な言い方は次のとおりです。

SELECT * FROM asset WHERE ...アセットは「presentationasset」を介してプレゼンテーションに接続されています。

TABLE asset
id
name

TABLE presentation
id
name

TABLE presenationasset
id
presentationid
assetid

これが理にかなっていることを願っています。関連テーブルではなく、実際のアセットとその列をすべてリストしたいと考えています。:)

質問 2: (それほど重要ではありません)

「プレゼンテーション」がクラスで「アセット」がクラスになるようにアプリケーションをセットアップしています...

質問 1 を念頭に置いて、関連する各アセットを「アセット」オブジェクトとして返すにはどうすればよいですか? それともそれも問題ですか?

4

2 に答える 2

2

Q1:

SELECT a.id, a.name
FROM asset a 
JOIN presentationasset pa ON pa.assetid = a.id AND pa.presentationid = 3
JOIN presentation p ON p.id = pa.presentationid
于 2012-04-26T02:39:11.083 に答える
1

けっこうだ :)

Select * from asset where id in
(select assetid from presentationasset where id in
(select id from presentation where name = "whateva"))

また

Select * from asset where id in
(select assetid from presentationasset where presentationid = 3)
于 2012-04-26T02:43:02.937 に答える