SQL 新手,收到'Missing Keyword'错误


SELECT N.ROOM_NUMBER AS "ROOM",
T.SLEEPS AS "SLEEPS",
G.FAMILY_NAME || ',' || G.GIVEN_NAME
FROM ((((A2_GUEST G 
JOIN A2_BOOKING B ON (G.GUEST_ID = B.GUEST)) 
JOIN A2_RESERVATION 
JOIN A2_ROOM N ON (N.ROOM_NUMBER = R.ROOM_NUMBER)) 
JOIN A2_ROOM_TYPE T ON (N.ROOM_TYPE = R.ROOM_TYPE)) 
ORDER BY 1 ASC

ORA-00905:缺少关键字00905. 00000 -"缺少关键字";*原因:
*行动:Line: 50 Column: 50

SQL新手,试图查询数据库。我可能只是在语法上有点笨,但我将非常感谢任何帮助。

期望得到某一天所有已预订房间的列表,包括房间号和房间可容纳多少人。还有预订客人的姓名和预订的日期。

  • 您不需要在连接周围加上括号(它们不是无效语法如果你要确保每个大括号都有一个匹配的大括号[你的大括号没有],但是,在这种情况下,它们不会给查询添加任何东西,除了混淆)。
  • 您没有R别名(可能在A2_RESERVATION表上)。
  • 不为A2_RESERVATION表指定JOIN条件(使用INNER JOIN并包含ON子句或使用CROSS JOIN)。

类似:

SELECT N.ROOM_NUMBER AS ROOM,
T.SLEEPS,
G.FAMILY_NAME || ',' || G.GIVEN_NAME
FROM A2_GUEST G 
INNER JOIN A2_BOOKING B     ON G.GUEST_ID = B.GUEST
CROSS JOIN A2_RESERVATION R
INNER JOIN A2_ROOM N        ON N.ROOM_NUMBER = R.ROOM_NUMBER
INNER JOIN A2_ROOM_TYPE T   ON N.ROOM_TYPE = R.ROOM_TYPE
ORDER BY 1 ASC

或:

SELECT N.ROOM_NUMBER AS ROOM,
T.SLEEPS,
G.FAMILY_NAME || ',' || G.GIVEN_NAME
FROM A2_GUEST G 
INNER JOIN A2_BOOKING B     ON G.GUEST_ID = B.GUEST
INNER JOIN A2_RESERVATION R ON R.something = B.something
INNER JOIN A2_ROOM N        ON N.ROOM_NUMBER = R.ROOM_NUMBER
INNER JOIN A2_ROOM_TYPE T   ON N.ROOM_TYPE = R.ROOM_TYPE
ORDER BY 1 ASC

相关内容

最新更新