刚开始研究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:无效标识符”
实际上第一个表的列名与第二个表不同,尽管数据相同。
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;
试试这个:-
select users.usr_grpid
from users
left join user_role on users.usr_grpid = user_role.usr_grpid;
注意:请不要在联接中使用列的别名,而是使用实际的列名。
除了不使用allian是连接条件,因为两个表都使用相同的列加入,你也可以使用NATURAL LEFT JOIN
SELECT usr_grpid
FROM users
NATURAL LEFT JOIN user_role;
但是为每个表设置别名以指定从哪个表获取值会很有帮助。
这样的事情:
SELECT a.usr_grpid
FROM users a
NATURAL LEFT JOIN user_role b;