2016-12-15 143 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,但我认为它是这样的初学者不易混淆。