Sql pgadmin запутался

#sql #postgresql #join

#sql #postgresql #Присоединиться

Вопрос:

Следующий запрос выдает синтаксическую ошибку:

 Select 
  traseu_stud.An, 
  traseu_stud.CodSpec 
from 
  traseu_stud 
where 
  NumePren = "Popescu W.T. Vasile" 
  and AnUniv = "2012-2013" 
  inner join studenti on traseu_stud.matricol = studenti.matricol 
  inner join persoane on studenti.idPers = persoane.idPers
  
 ERROR:  syntax error at or near "inner"
LINE 3: ...Pren="Popescu W.T. Vasile" and AnUniv="2012-2013" inner join...
                                                             ^
SQL state: 42601
Character: 122
  

Комментарии:

1. нам нужно увидеть код запроса

2. Подумайте: какое, по вашему мнению, у вас есть авторское обоснование для написания этого? Каким способом вы можете выразить то, что вы хотите, чтобы это выглядело как примеры в вашей ссылке и для которых вы, по-видимому, можете найти обоснование?

Ответ №1:

Вам придется использовать подзапрос, если вы хотите использовать filter таким образом:

 select * from
   (
      Select traseu_stud.An,traseu_stud.CodSpec,matricol 
      from traseu_stud 
      where NumePren='Popescu W.T. Vasile' and AnUniv='2012-2013'
   ) a
inner join studenti on a.matricol=studenti.matricol 
inner join persoane on studenti.idPers=persoane.idPers
  

в противном случае вам придется использовать фильтр следующим образом

  Select traseu_stud.An,traseu_stud.CodSpec from 
 traseu_stud  inner join 
 studenti on traseu_stud.matricol=studenti.matricol inner join persoane on 
 studenti.idPers=persoane.idPers
 where NumePren='Popescu W.T. Vasile' and AnUniv='2012-2013'
  

Ответ №2:

JOIN Переходим в предложение from .

Дополнительно: строковые константы должны быть заключены в одинарные кавычки, двойные кавычки предназначены для идентификаторов:

 Select 
  traseu_stud.An, 
  traseu_stud.CodSpec 
from traseu_stud 
  inner join studenti on traseu_stud.matricol = studenti.matricol 
  inner join persoane on studenti.idPers = persoane.idPers
where NumePren = 'Popescu W.T. Vasile'
  and AnUniv = '2012-2013'
  

Ответ №3:

спасибо за вашу помощь, но у меня те же ошибки, я поместил сюда изображение с таблицами и то, что я хочу сделать: Какая специализация (Specializare) и в каком учебном году (AnUniv) это Попеску В.Т. Василе в 2012-2013 годах. https://i.stack.imgur.com/e1iV1.jpg