刚开始使用Oracle SQL并尝试使用左连接。获取以下错误,请帮助。
select usr_grpid as "usr_role_role_id"
from users
left join user_role on users.usr_role_role_id = user_role.usr_role_role_id;
错误讯息:
ORA-00904:" USERS"。" USR_ROLE_ROLE_ID":无效的标识符 00904. 00000 - "%s:无效的标识符"
实际上,第一个表的列名与第二个表不同,尽管数据相同。
答案 0 :(得分:1)
select usr_grpid as "usr_role_role_id"
from `users`
left join user_role on `users`.usr_role_role_id = user_role.usr_role_role_id;
或
select usr_grpid as "usr_role_role_id"
from users usr
left join user_role on usr.usr_role_role_id = user_role.usr_role_role_id;
答案 1 :(得分:1)
试试这个: -
select users.usr_grpid
from users
left join user_role on users.usr_grpid = user_role.usr_grpid;
注意: 请不要在联接中使用列的别名,而是使用实际的列名。
答案 2 :(得分:-1)
除了不使用allian是连接条件,因为两个表都使用相同的列来连接,你也可以使用NATURAL LEFT JOIN
SELECT usr_grpid
FROM users
NATURAL LEFT JOIN user_role;
但是让每个表的allias指定从哪个表中获取值会很有帮助。
类似的东西:
SELECT a.usr_grpid
FROM users a
NATURAL LEFT JOIN user_role b;