我正在尝试使db2简单查询适应SQL SERVER。该查询在db2上工作正常
select *
from pb_console.users u
join (
select * from pb_console.users_user_role j join
pb_console.users_roles r on j.role_id = r.role_id) as jj
on jj.user_id = u.user_id
在sql server上失败并显示错误:
The column 'ROLE_ID' was specified multiple times for 'jj'
我试着从联接的左表中删除角色_id,方法是:
select * from pb_console.users u join (
select user_id, role_rif from
pb_console.users_user_role j join (select role_id, role_name from
pb_console.users_roles) r
on
j.role_id = r.role_id) as jj on jj.user_id = u.user_id
但结果。
The column 'role_id' was specified multiple times for 'jj'.
我也尝试为第一个role_id使用其他别名,但没有成功。
我怎样才能解决这个问题?
最佳答案
由于在表ColumnName
中都存在pb_console.users_user_role & pb_console.users_roles
ROLE_ID,因此引发了错误,因此请尝试指定仅在下面需要的列
SELECT *
FROM pb_console.users u
join (
SELECT J.RoleID,J.User_ID FROM pb_console.users_user_role j
JOIN pb_console.users_roles r ON j.role_id = r.role_id) AS jj
on jj.user_id = u.user_id
关于sql-server - 为表多次指定了xxx列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43633908/