MySQL子查询subquery

子查询(Subquery)是指出现在其他SQL语句内的SELECT子句。

例如:

select * from t1 where col1=(select col2 from t2);

其中select * from t1,称为Outer Query/Outer Statement(外层查询)

select col2 from t2,称为SubQuery(子查询)

 

子查询必须嵌套在查询内部,且必须始终出现在圆括号内

子查询可以包含多个关键字或条件,

如distinct  group by  order by  limit  函数等

子查询的外层查询可以是select  insert  update  set    或 do

子查询返回值

子查询可以返回标量、一行、一列或子查询。

转载于:https://www.cnblogs.com/wangshuyi/p/6492344.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你的子查询返回多于一行的结果时,会出现"Subquery returns more than 1 row"的错误。这个错误说明你的子查询的筛选条件导致了多行结果。解决这个问题的方法是检查子查询的筛选条件,确保它只返回一行结果。你可以单独执行子查询,并排查错误所在。你可以尝试使用GROUP BY和HAVING子句来限制子查询的结果行数,以确保只返回一行结果。例如,你可以使用类似以下的查询语句来解决这个问题: EXPLAIN select * from mytable where shouji = (select shouji from mytable GROUP BY shouji HAVING count(shouji)>2) 这样的查询会返回一个错误信息,其中会指出具体的错误行数和错误类型。你可以根据这些信息对子查询进行调试,并修复筛选条件,确保只返回一行结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [mysql报错:子查询返回值大于一](https://blog.csdn.net/azure10492/article/details/126031336)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [关于mysql错误:Subquery returns more than 1 row](https://blog.csdn.net/zuihongyan518/article/details/82967902)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值