【发布时间】:2014-12-16 19:49:07
【问题描述】:
我已经为此苦苦挣扎了一段时间,所以也许有人可以提供一些见解。
我们有一个来自 TVShow 数据库的练习查询,对于这个问题有 4 个表。
查询如下:赞助 ABC 的所有电视节目的赞助商
到目前为止我尝试过的是这样,但它似乎不起作用:
SELECT DISTINCT RSPONSOR.SPONSOR_NAME
FROM RSPONSOR
WHERE NOT EXISTS (
SELECT *
FROM RTVSHOW
WHERE NOT EXISTS (
SELECT *
FROM RSPONSORBY
WHERE RSPONSOR.SPONSOR_NAME = RSPONSORBY.SPONSOR_NAME
AND RSPONSORBY.SHOW_NUM = RTVSHOW.SHOW_NUM
AND RTVSHOW.NETWORK_ID = 'ABC'
)
);
希望有任何帮助!提前致谢。
以下是供参考的表格
--RTVSHOW--
SHOW_NUM NUMBER
SHOW_NAME VARCHAR2(20 BYTE)
START_MONTH NUMBER
START_YEAR NUMBER
END_MONTH NUMBER
END_YEAR NUMBER
NETWORK_ID VARCHAR2(20 BYTE)
DISTR_NAME VARCHAR2(20 BYTE)
--响应者--
SPONSOR_NAME
PARENT_NAME
--RSPONSORBY--
SHOW_NUM
SPONSOR_NAME
--RNETWORK--
NETWORK_ID
NETWORK_HQ
PARENT_NAME
【问题讨论】:
-
考虑外连接,祝你功课好运:)
-
还可以考虑排除不赞助至少一场演出的赞助商。目前,您选择所有没有赞助商的 ABC 节目。