因此,我有一個Uni任務,講師在本週選擇生病並且無法回答問題。SQL嘗試外部連接表但不工作
我們給了一個由4個表組成的棒球數據庫。表結構如下:
TABLENAME:(列1,列2 ...等)PK =主鍵,FK =外鍵
PLAYER:(NUM PK,姓名,出生日期,球隊FK,位置)
GAME:(NUM PK,gamedate,hometeam FK,awayteam FK,homescore, awayscore)
GAMESTAT:(gamenum PK,playernum FK,本壘打,刪除線)
TEAM:(代碼PK ,姓名,地址WN,地)
這個特別問題的目的是獲得的體育場(隊表地)名,本壘打的總和得分上地面,三振出局,然後總和指定日期範圍內這兩個值的總和。
我的查詢和問題有以下:
SELECT
t.ground AS GROUNDPLAYED,
SUM(gs.homeruns) as TOTALHOMERUNS,
SUM(gs.strikeouts) AS TOTALSTRIKEOUTS,
SUM(gs.homeruns + gs.strikeouts) AS COMBINEDTOTAL
FROM team t
LEFT OUTER JOIN game g ON g.hometeam = t.code
LEFT OUTER JOIN gamestat gs ON g.num = gs.gamenum
WHERE g.gamedate BETWEEN '7-AUG-2014' AND '13-AUG-2014'
GROUP BY t.ground;
我的問題就在於,我得到了正確的值場比賽,但無論使用LEFT OUTER JOIN的,我不會讓所有的體育場的列出。我相信這是因爲我必須加入GAME桌上的家庭團隊,並且只能在此基礎上選擇主場館。
任何幫助,您可能會提供將不勝感激。
將您的WHERE子句移動到ON子句中以加入* gamestat *。 – 2014-09-05 03:10:38