sql-server - 为表多次指定了xxx列

标签 sql-server tsql join db2 alias

我正在尝试使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/

相关文章:

c# - 当前上下文中不存在名称 'Database'?

sql - 计算不同记录的窗口函数

sql - 有什么简单的方法可以在T-SQL中格式化小数?

MySQL连接+子查询混淆

sql-server - SQL : JOIN value from table A with table C if table B is empty

c# - 将数据从 XML 导入到 SQL Server 表

sql - MSSQL Server 在 InnerJoin 上不使用非聚集复合键索引 (PK + FK)

sql - 创建一个显示以前费率的列

sql-server-2005 - T-SQL,选择一组的第一行

hadoop - hive :我如何加入一个有日期间隔的条件?