ВЫБОР СТОЛБЦОВ ИЗ ВНУТРЕННЕГО СОЕДИНЕНИЯ

#sql #oracle

#sql #Oracle

Вопрос:

Я хотел выбрать два столбца из внутреннего соединения двух запросов select. Я написал запрос, объединяющий три таблицы, и из результата я хочу получить только два столбца. Но мой запрос показывает ошибку.Я использую Oracle sql developer.

 SELECT firstname,surname
FROM (
SELECT A.firstname,A.surname,I.ACNUM,I.FIELDNUM 
FROM ACADEMIC A INNER JOIN INTEREST I
ON (A.ACNUM = I.ACNUM)
INNER JOIN SUBJECT S ON (I.FIELDNUM = S.FIELDNUM) WHERE S.TITLE = 'History' ) ;
  

Мне нужны только имя и фамилия, но я получаю сообщение об ошибке типа:

Неправильный синтаксис рядом с ‘;’.

Ответ №1:

Почему вы используете подвыборку? Просто используйте:

 SELECT A.firstname, A.surname
FROM ACADEMIC A INNER JOIN
     INTEREST I
     ON A.ACNUM = I.ACNUM INNER JOIN
     SUBJECT S
     ON I.FIELDNUM = S.FIELDNUM
WHERE S.TITLE = 'History' ;
  

Ответ №2:

При выборе из запроса вы также должны назвать его. Попробуйте это:

 SELECT D.firstname,D.surname
  FROM (SELECT A.firstname,A.surname,I.ACNUM,I.FIELDNUM
  FROM ACADEMIC A
         INNER JOIN INTEREST I ON (A.ACNUM = I.ACNUM)
         INNER JOIN SUBJECT S ON (I.FIELDNUM = S.FIELDNUM)
  WHERE S.TITLE = 'History') D;