我有一個任務,並琢磨,並在同一時間擊退我的病了幾個小時之後,我放棄了我的猜測,任務是不可能的:嵌套的SQL查詢與數
我是隻打印出至少由兩位作曲家組成的CD名稱。所有這些信息存儲在3個表格中: cd(具有cdnr(鍵)和名稱),aufnahme(具有曲目(鍵:cdnr和snr(片段ID)))和stueck(具有作曲家ID(knr )和鍵SNR)
唯一soulution我能想到的,指望其明顯的排序cdnr和KNR每個cdnr子查詢的元組,但似乎我無法從初始查詢通過cdnr:
select a.cdnr,a.name
from cd a,aufnahme b,stueck c
where a.cdnr=b.cdnr
and b.snr=c.snr
and (
select count(*) from (
select distinct aufnahme.cdnr,stueck.knr
from aufnahme,stueck
where aufnahme.snr=stueck.snr
and aufnahme.cdnr=a.cdnr
)
)<>1029381
group by a.cdnr,a.name,c.knr
如果有人可以幫助我,我會非常感謝。
模式:
KOMPONIST (KNR, NAME, VORNAME, GEBOREN, GESTORBEN)
STUECK (SNR, KNR ! KOMPONIST, TITEL, TONART, OPUS)
CD (CDNR, NAME, HERSTELLER, ANZ CDS, GESAMTSPIELZEIT)
AUFNAHME (CDNR ! CD, SNR ! STUECK, ORCHESTER, LEITUNG)
SOLIST ((CDNR, SNR)! AUFNAHME, NAME, INSTRUMENT)
編輯: 小時後(和良好的睡眠),我仍然沒有解決這一個線索。所有的建議 - 起初似乎是一個好的開始 - 有一個我無法想象的問題:他們試圖將一個表分組。但是這樣做是行不通的,因爲表STUECK沒有分組(snr是主鍵,是外鍵)。所以STUECK和AUFNAHME必須合併,然後清楚的knr被統計,並且在那裏我迷路了。
我知道它的作業,但我還是希望有人能幫助我..
因爲它的作業:暗示是使用一個作曲家,一組和一個條款。 – Andrew
@alex - 您應該發佈架構。我(我想我們大多數人)不知道aufnahme或stueck意味着什麼。 –
@Lieven - 你是對的,這是更可用。安德魯 - 「唯一的解決辦法」確實是雙曲線。我也嘗試了過去的幾個小時。我只是不明白我應該在什麼時候算作曲家。還有最後一個提示:這很難嗎?還是我錯過了顯而易見的? ;) – alex