Я пересмотренная к экзамену, и я немного борюсь с запросами SQL ..Выполнение SQL запроса (кросс таблицы)
Задачи для меня:
написать запрос SQL в список полные имена всех клиентов, которые посещающие Allen Moore "S-классов, в алфавитном порядке фамилии (т.е. Lname столбцов)
Clie нт
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'. И лучше использовать объединения, а не все в этом. – Kyra
Не справедливое голосование - вопрос прост, но разумен, и усилия были поставлены на поиск ответа. –
Есть незначительная проблема с Cliente (French?) Vs Client в имени таблицы. GROUP BY неверен (он должен отображать оба столбца, потому что они не являются агрегатами, а затем он не наносит никакого вреда, за исключением, вероятно, медленных действий, это не гарантирует порядок вывода, с одним столбцом, это просто неправильно). И ваш код не использует более современные (как в, начиная с 1992 года) стандартные ссылки на SQL-соединения. Однако, помимо этих ошибок, запрос, как мне кажется, будет работать, как написано. У вас есть ряд предложений по написанию запроса с явным соединением среди ответов. –