2013-04-24 7 views
-2

Я использую следующий код, но я пытаюсь понять, псевдонимы, я получаю сообщение об ошибке с помощью этого кода «команда SQL не правильно закончилась», строка 2Использование псевдонимов в SQL

SELECT student.lastname, student.firstname 
FROM student AS Student_Name 
INNER JOIN memberof ON (Student_Name.SID = memberof.studentid) 
INNER JOIN studentgroup ON (memberof.groupid = studentgroup.gid) 
GROUP BY Student_Name.lastname , Student_Name.firstname 
HAVING COUNT(memberof.groupid) >= 2 
+2

Если вы используете псевдоним, используйте его всегда: 'ВЫБРАТЬ Student_Name.lastname, Student_Name.firstname ОТ студента AS Student_Name ...' –

+0

Не необходимо также агрегат в пункте выбора? – ChaosPandion

+1

@ChaosPandion: Нет. Все выбранные столбцы также находятся в группе по пункту –

ответ

1

Я думаю, что вы используете Oracle, который, по-видимому, не поддерживает ключевое слово as для псевдонимов таблицы.

SELECT s.lastname, 
     s.firstname 
FROM student s 
INNER JOIN memberof 
    ON s.SID = memberof.studentid 
INNER JOIN studentgroup 
    ON memberof.groupid = studentgroup.gid 
GROUP BY s.lastname, 
     s.firstname 
HAVING COUNT(*) >= 2; 
0

MYSQL:

Если вы используете псевдоним, вам нужно всегда ссылаться на эту таблицу, используя свой псевдоним. Genrally Я использую псевдонимы, чтобы сократить свои имена, так что я не должен набрать столько

SELECT s.lastname, s.firstname 
FROM student AS s 
INNER JOIN memberof ON (s.SID = memberof.studentid) 
INNER JOIN studentgroup ON (memberof.groupid = studentgroup.gid) 
GROUP BY s.lastname , s.firstname 
HAVING COUNT(memberof.groupid) >= 2 

«s» может быть слишком коротким depening на контексте вашего кода, но вы получите идею

ОРАКУЛ

Oracle не поддерживает AS для таблицы псевдонимов, только для псевдонимов столбцов: SQL Command not properly ended?

+0

Большинство моих псевдонимов длиной 1-3 символа - до тех пор, пока псевдонимы локализованы (что все они должны быть) , но я нахожу такие имена подходящими. Самый большой ключ - соответствовать именованию. (В этом случае 'Student_Name' ужасно читается как скаляр, а не отношение.) – user2246674

+0

Такая же ошибка:« SQL-команда не была должным образом закончена » – user12074577

+0

проверьте свои разрывы строк, убедитесь, что у вас есть пробелы, т. Е. Все это делается на одной строке и убедитесь, что есть пробел после "s" – Andre

Смежные вопросы