连体

CREATE TABLE T1 (a int);

CREATE TABLE T2 (a int);

SELECT T1.a , T2.a
FROM T1
JOIN T2 ON T1.a=T2.a
GROUP BY T1.a;

我从这个代码中得到一个错误。

Msg 8120 Level 16. 列’T2.a’在选择列表中无效,因为它既没有包含在聚合函数中,也没有包含在GROUP BY子句中。

我本以为这样做会成功,因为T1.a和T2.a是连接在一起的。

解决方案:

我本以为这样做会成功,因为T1.a和T2.a是连接的。

这是有道理的,但不幸的是:没有。SQL Server在以下数据中看到了两个不同的未聚合列 SELECT 条款,并希望它们在 GROUP BY 句也。

SELECT T1.a, T2.a
FROM T1
JOIN T2 ON T1.a = T2.a
GROUP BY T1.a, T2.a

另一方面,由于 在这些列上进行连接,你也知道这两个列的值是一样的,那么为什么你需要在结果集中输出这两个列呢?

SELECT T1.a
FROM T1
JOIN T2 ON T1.a = T2.a
GROUP BY T1.a

有些数据库支持 USING 语法,当两者相同时,可以消除列名的歧义–但SQL Server不是这样。

SELECT a
FROM T1
JOIN T2 ON USING(a)
GROUP BY a

给TA打赏
共{{data.count}}人
人已打赏
未分类

Yii2:通过别名访问列

2022-9-9 5:30:22

未分类

当屏幕旋转时,onSaveInstanceState()不工作。

2022-9-9 5:41:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索