嵌套选择的内部连接 - 多次使用同一列时
Posted
技术标签:
【中文标题】嵌套选择的内部连接 - 多次使用同一列时【英文标题】:Inner join on nested select - when using same column multiple times 【发布时间】:2015-11-13 04:03:50 【问题描述】:我正在尝试编写一个在嵌套选择上具有内部连接的查询 - 但是,嵌套选择本身需要使用别名 val 和 val2 在同一列上连接两次。
我想在 val2 的 'id' 列上加入嵌套选择,但我该如何指定呢?当我尝试以下查询时,我收到错误“列 'id' 为 'v' 指定了多次。”
我使用的是 Microsoft SQL Server 2008 R2。
SELECT top 20 SUM(pagecount) AS totalPages, fullname, name FROM cas_sdr_history h
INNER JOIN cas_user_ext u ON h.accountid = u.x_id
INNER JOIN (select * from cas_val_assoc ass
full outer join cat_validation val2 on ass.mainid = val2.id
full outer join cat_validation val on ass.associd = val.id
where mainid is not null
and val2.name not in ('03','04','05','06','07','08','09','10','11','12')) v on v.id = u.x_id
WHERE trxdate BETWEEN '11/01/2015' AND '12/01/2015'
GROUP BY fullname, name
ORDER BY totalPages DESC
【问题讨论】:
【参考方案1】:因为 2 个连接表相同 column: id
您必须选择其中之一。如果要获取所有列,必须使用别名列
示例:val.id AS ID, val2.ID AS ID2
【讨论】:
我现在觉得自己很蠢!感谢您的回答,效果很好。以上是关于嵌套选择的内部连接 - 多次使用同一列时的主要内容,如果未能解决你的问题,请参考以下文章