1

我真的需要一些关于 SQL 的帮助。

问题一:

如果资产在其表中具有相应的“presentationid”,则很容易获取属于“presentation”的所有“assets”。

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