2016-12-15 142 views
2

我正在嘗試編寫SQL連接查詢。我對此相對較新,而且我不確定是否特別在c),d)和e)部分發生了任何錯誤。SQL連接查詢嘗試

如圖一:數據庫架構

Customer 
ID FirstName LastName DateOfBirth 

Instructor 
Id FirstName LastName 

FitnessClass 
Id ClassName Cost InstructorId 

Subscription 
CustomerId ClassId StartDate 

什麼是誰已認購名稱爲「初學者鬆巴」健身類的客戶名稱。

SELECT FirstName, LastName 
FROM Customer, Subscription 
WHERE 
Customer.CustomerID = ClassName. Beginner Sumba 
+0

我只是想提供一個有用的鏈接在這裏 - http://www.firstsql.com/tutor2.htm – Anand

+0

我可能會閱讀初學者指南。它會爲您節省大量的時間。在查詢中看到的所有錯誤都可能在指南開始時很快覆蓋。我強烈建議你看看下面的播放列表:https://www.youtube.com/watch?v=ZNObiptSMSI&list=PL08903FB7ACA1C2FB – NonProgrammer

+0

用戶正確的'JOIN'語法。 https://www.techonthenet.com/sql/joins.php – Eric

回答

1

您必須按ID連接表,然後在WHERE子句中過濾需要的內容。

項目A合適的解決方案將smtg類似於:

select c.FirstName, c.LastName 
from Customer c 
join Subscription s on (s.CustomerId = c.ID) 
join FitnessClass f on (f.Id = s.ClassId) 
where f.ClassName = 'Begginer Sumba' 

看一看,嘗試解決其他人。請進一步懷疑。

祝你好運!

0

不幸的是,您的任何查詢都不正確。您首先必須熟悉語法。所有主要數據庫管理系統的幫助頁面都非常好,您可以查找BNF或流程圖和示例以瞭解正確的語法(例如http://dev.mysql.com/doc/refman/5.7/en/select.htmlhttp://dev.mysql.com/doc/refman/5.7/en/join.html)。

強烈建議您使用別名連接語法,更直觀,更易於閱讀。 a)我會告訴你如何解決這個問題,然後你可以給其他人一個鏡頭。

SELECT c.FirstName, c.LastName 
FROM Customer c JOIN 
    Subscription s ON s.CustomerId = c.Id JOIN 
    FitnessClass f ON f.Id = s.ClassId 
WHERE f.className = 'Beginner Sumba' 

你也可以把條件在最後一個加入的,而不是where,但我認爲它是這樣的初學者不易混淆。