The column xxx was specified multiple times for table(为表多次指定了第 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
这篇关于为表多次指定了第 xxx 列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:为表多次指定了第 xxx 列


基础教程推荐
- oracle区分大小写的原因? 2021-01-01
- 什么是 orradiag_<user>文件夹? 2022-01-01
- 在 MySQL 中:如何将表名作为存储过程和/或函数参数传递? 2021-01-01
- 在多列上分布任意行 2021-01-01
- 表 './mysql/proc' 被标记为崩溃,应该修复 2022-01-01
- MySQL 中的类型:BigInt(20) 与 Int(20) 2021-01-01
- 如何根据该 XML 中的值更新 SQL 中的 XML 2021-01-01
- 如何在 SQL 中将 Float 转换为 Varchar 2021-01-01
- mysql选择动态行值作为列名,另一列作为值 2021-01-01
- 二进制文件到 SQL 数据库 Apache Camel 2021-01-01