从内部联接中选择列

时间:2019-03-31 17:08:17

标签: sql oracle

我想从两个选择查询的内部联接中选择两个列。我编写了一个查询,将三个表连接起来,从结果中我只想得到两列。但是我的查询显示错误。我正在使用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' ) ;

我只需要名字和姓氏,但是却出现类似以下的错误消息:

  

';'附近的语法不正确。

2 个答案:

答案 0 :(得分: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' ;

答案 1 :(得分:0)

从查询中选择时,也应为其命名。 试试这个:

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;