左外连接时 having找不到 右表字段
时间: 2023-06-15 09:02:58 浏览: 42
在进行左外连接时,HAVING子句只能使用左表和连接条件中的列,而不能使用右表中的列。这是因为右表中的列可能在连接后为空值,因此无法进行比较。如果你需要在HAVING子句中使用右表中的列,可以尝试使用子查询来获取需要的结果。例如:
```
SELECT A.id, COUNT(B.id) as count
FROM tableA A
LEFT JOIN tableB B ON A.id = B.aid
GROUP BY A.id
HAVING count > (SELECT COUNT(id) FROM tableC WHERE ...);
```
在上面的查询中,子查询获取了右表中的某些列,并在HAVING子句中进行了比较。注意,子查询应该返回单个值,否则会报错。
相关问题
mysql having语句的左右
MySQL的HAVING语句用于筛选GROUP BY子句分组后的结果集。它与WHERE语句的作用类似,不同的是HAVING语句是针对分组的结果进行筛选的,而WHERE语句是针对单个记录进行筛选的。
HAVING语句的左边是一个聚合函数或者是一个分组列,用于对分组后的结果进行聚合;右边是一个表达式,用于对聚合结果进行筛选,只有当表达式的值为TRUE时,结果才会被包含在结果集中。
例如,下面的SQL语句使用HAVING语句筛选出销售额大于1000的商品类别:
```mysql
SELECT category, SUM(price) as total_sales
FROM products
GROUP BY category
HAVING total_sales > 1000;
```
其中,`SUM(price) as total_sales`是左边的聚合函数,`total_sales > 1000`是右边的表达式。
左连接 group by
左连接在group by中的使用是指通过左表中的所有记录和右表中满足条件的记录进行连接,并且按照指定的分组方式进行分组。在左连接中,左表中的记录将会全部显示,而右表中不满足条件的记录将会显示为null。
举个例子,如果我们有两个表score和student,score表中存储了学生的成绩信息,student表中存储了学生的基本信息。我们可以使用左连接将这两个表连接起来,按照学生进行分组,并计算每个学生的平均成绩和总成绩。
使用左连接的SQL语句可以如下所示:
SELECT student, AVG(score), SUM(score)
FROM student LEFT JOIN score ON student.id = score.student_id
GROUP BY student
在这个例子中,LEFT JOIN表示左连接,student.id = score.student_id表示连接条件,GROUP BY student表示按照学生进行分组。这样就可以得到每个学生的平均成绩和总成绩了。
参考资料:
: SELECT student,AVG(score) FROM score GROUP BY student
: SELECT student,SUM(score) FROM score GROUP BY student
: SELECT student,SUM(score<60)as gk FROM score GROUP BY student HAVING gk>1
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)