1
我正在嘗試編寫一個SQL查詢,該查詢返回大學課程的模塊編號及其標題列表以及該模塊及其標題的先決條件列表。這意味着,輸出應該類似於:基於FK的解析屬性
Module | Module Title | Prerequisite | Prerequisite Title
C1930 | Computing | C1100 | Basic Computing
C1930 | Computing | C1500 | Intermediate Computing
T1350 | Textiles | T1100 | Sewing
表類型如下:
模塊(moduleNumber,MODULENAME);
前提條件(moduleNumber,prerequisiteNumber);
我的問題是解決prerequisteNumber作爲moduleName。我可以看到它可能需要是一個子查詢或使用某種JOIN(INNER JOIN是我如何嘗試它),但我似乎無法讓它工作。
我的查詢嘗試如下:
SELECT m.moduleNumber as "Module", m.moduleName as "Module Title", p.moduleNumber as "Prerequisite", p.prerequisiteNumber as "Prerequisite Title"
FROM Module m, Prerequisite p
WHERE p.moduleNumber = m.moduleNumber
OR p.prerequisiteNumber = m.moduleNumber
和:
SELECT m.moduleNumber as "Module", m.moduleName as "Module Title", p.moduleNumber as "Prerequisite"
FROM Module m
INNER JOIN Prerequisite s
ON m.moduleNumber = p.moduleNumber
INNER JOIN
(
SELECT m.moduleName as "Prerequisite Title"
FROM Module m, Prerequisite p
WHERE m.moduleNumber = p.moduleNumber
)
這兩者都不提供給我我想要的結果。我覺得第一個比第二個更接近,但我似乎無法在其中任何一個方面取得進一步進展。我試着四處搜尋,但我甚至不知道如何描述這個問題,更不用說從哪裏開始尋找幫助。
謝謝你的時間。
編輯:
下面是模塊例如數據和前提表:
模塊
moduleNumber | moduleName
C1930 | Computing
C1100 | Basic Computing
C1500 | Intermediate Computing
T1350 | Textiles
T1100 | Sewing
前提
moduleNumber | prerequisiteNumber
C1930 | C1100
C1930 | C1500
T1350 | T1100
嗯。我可以看到你要去哪裏,但它輸出的是同一組數據兩次 - 我將示例數據添加到顯示示例的原始文章中。 – Paul
已編輯 - 我認爲這應該使情況更清楚 - 抱歉的誤解。 – Paul
這是我假設的一組數據。我不明白它是如何給出重複的。我會審查。 – albe