为表多次指定了第 xxx 列
我正在尝试使 db2 简单查询适应 SQL SERVER.此查询在 db2 上运行良好
I am trying to adapt a db2 simple query to SQL SERVER. This query is working fine on 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 上失败并出现错误:
on sql server it fails with error:
The column 'ROLE_ID' was specified multiple times for 'jj'
我已尝试将角色 _id 从联接的左表中删除为:
I have tried removing role _id from the left table of the join as:
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 使用不同的别名,但没有成功.
I have also tried using a different alias for the first role_id, with no success.
我该如何解决这个问题?
How can I fix this?
推荐答案
由于 ColumnName
ROLE_ID 存在于两个表 pb_console.users_user_role &pb_console.users_roles
所以尝试指定只需要的列,如下所示
The error is raised because the ColumnName
ROLE_ID is present in both the table pb_console.users_user_role & pb_console.users_roles
so try to specify the columns that are only required as below
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
相关文章