【发布时间】:2014-07-08 15:55:12
【问题描述】:
我有两个名为 LOGIN 和 LOGIN_LOG 的表。在 LOGIN_LOG 表中,保存了每个用户每次登录的日期时间。在这两个表中 EMP_CODE 是公共列。我必须从登录表中选择所有用户名、位置以及从 LOGIN_LOG 表中的“上次登录时间”。我已经尝试过这样的事情,但没有工作。请帮忙。
SELECT
LOGIN."NAME",
LOGIN.LOCATION,
LOGIN.WORKING_STATUS,
LV.LOGINDATETIME
FROM
LOGIN
LEFT OUTER JOIN
(SELECT
LOGIN_LOG.EMP_CODE,
LOGIN_LOG.LOGINDATETIME
FROM LOGIN_LOG
ORDER BY LOGIN_LOG.LOGINDATETIME DESC
) AS LV
ON LOGIN.EMP_CODE=LV.EMP_CODE
WHERE LOGIN.USER_TYPE='NSA';
【问题讨论】:
-
它给出了错误 - ORA-00905: missing keyword
-
@mareckmareck:绝对不是。列(标识符)使用双引号引起来。单引号用于字符文字。
-
这不是单引号,而是后引号。但实际上你是对的,在 Oracle 中你使用双引号。
-
@mareckmareck:反引号和单引号一样错误。标准 SQL(和 Oracle)使用双引号作为标识符。