我修改为我的考试,我有点与SQL查询挣扎..制作一个SQL查询(交叉表)
工作对我来说是:
写一个SQL查询来列出所有客户端的全名是 参加艾伦·摩尔的“S班,姓氏字母顺序(即 lname列)
的Clie NT
Cid Fname Lname Fitness
C129 Julie Summer 1
C525 Max Hedrum 3
C628 John Long 3
C772 Warren Peace 2
C829 Anna Heart 2
计划
Code Title Fitness
AR02 Aerobics 2
EN99 Endurance 3
TU10 Tune-Up 1
UB01 Upper-Body 2
YG02 Yoga 1
员工
Sid Fname Lname Position Salary
S09 Jenny Sayer Psychologist 23500
S22 Allen Moore Instructor 21500
S28 Polly Purves Instructor 19000
S35 Jim Shoe Instructor 18000
S55 Mark Spencer Manager 25500
类
Code Sid Cid
AR02 S35 C772
EN99 S22 C525
TU10 S35 C129
UB01 S28 C628
YG02 S22 C829
YG02 S22 C12
它是这样的:
SELECT Cliente.Fname, Cliente.Lname
FROM Staff, Class, Cliente
WHERE Staff.Sid = Class.Sid AND Staff.Fname = "Allen" AND Staff.Lname = "Moore
AND Class.Cid = Cliente.Cid
GROUP BY Cliente.lName ASC;
谢谢!
您将要使用'order by'而不是'group by'。最好是专门使用连接而不是from中的所有连接。 – Kyra 2012-01-09 20:05:52
不公平的投票 - 这个问题很简单但合理,努力找到答案。 – 2012-01-09 20:17:49
表名中有Cliente(法语?)与Client的小问题。 GROUP BY是不正确的(它应该列出两个列,因为它们不是聚合的,然后它不会造成任何伤害,除了可能慢一点的事情;它不保证输出顺序;有一列,它只是错误)。而且你的代码并没有使用更现代的(自1992年以来)标准的SQL连接符号。但是,除了这些小问题之外,我相信这个问题的写法是可行的。对于如何在答案中使用显式连接编写查询,您有许多建议。 – 2012-01-09 20:20:40