subquery returns more than 1 row(mysql连表查询报错:Subquery returns more than 1 row)

本文目录
- mysql连表查询报错:Subquery returns more than 1 row
- t-sql问题:Subquery returns more than 1 row,请问这个sql该怎么写
- 常犯错误:Subquery returns more than 1 row
- Mysql 这个语句返回了Subquery returns more than 1 row
- 与主表关联了还是报> Subquery returns more than 1 row
- 如何解决single-row subquery returns more than one row
- mysql查询报错Subquery returns more than 1 row
- JAVA的MySQL查询中Subquery returns more than 1 row的报错
mysql连表查询报错:Subquery returns more than 1 row
意思是查询的数据不能多余一行,多余一行就会报错。
解决方法:
1、需要在语句后面加上limit 1
比如:
SELECT `kid_id` FROM `tl_player` WHERE `id`=(SELECT `player_id` FROM `tl_player_travel_user_city` WHERE `city_id`=1 AND `status`=2) limt 1
2、在子查询前加any关键字
比如:
SELECT * FROM `tl_order` WHERE `member_id`=any(SELECT `member_id` FROM `tl_kid` WHERE `id`=any(SELECT `kid_id` FROM `tl_player` WHERE `id`=any(SELECT `player_id` FROM `tl_player_travel_user_city` WHERE `city_id`=1 AND `status`=2))) AND (`goods_id`=123 or `goods_id`=13) AND `status`=0
第一种方法适合只需要查询一条数据的情况
第二种方式适合查询多条符合条件的情况
t-sql问题:Subquery returns more than 1 row,请问这个sql该怎么写
Subquery returns more than 1 row : 子查询返回值不唯一,意思是必须唯一才正确。
很显然是这个子查询的查询结果不唯一出的问题:(select ServiceTimeId from jspdb.order)
修改办法:在这个查询里加上where 条件语句,保证查询结果唯一
常犯错误:Subquery returns more than 1 row
1、用一条SQL语句查询出mianshi1表中每门课都大于80分的学生姓名
报错:Subquery returns more than 1 row,子句返回多个结果,可以将子句改成下面那样非子句的形式,,,同样的错误在下面第2题也有出现。。。
正确写法:
2、查询Score中选学多门课程的同学中分数为非最高成绩的记录(interviewquestion45-20)
报错:Subquery returns more than 1 row,同时逻辑出错,第一个子查询返回的结果是不包含每个同学的最高成绩
第二个子查询select返回的记录有多条,在子句最后加上limit 1,找到任何一个符合条件的就可以执行了,或者在括号前面写any,这里结果是对的,但是它只返回一条limit 1 ,在有的地方可能不对。
正确写法:
3、查询成绩比该课程平均成绩低的同学的成绩表(interviewquestion45-33)
同样是第2题中的那个Score表
报错:Subquery returns more than 1 row
子查询select返回的结果为多行数据,在子句最后加上limit 1,找到任何一个符合条件的就可以执行了,或者在括号前面写any
正确写法:
这一题的求各个课程的平均分的逻辑和第二题中求各个课程的最高分的逻辑一样,也和第四题中求对应城市的相应money的逻辑一样,是将对应的值对应到对应类目上去,并没有一次返回多个平均值avg
所以,和错误写法相比,那个错误写法的逻辑子查询是一次性返回的多个结果,而不是像正确写法那样将多个avg对应到相应类目上去。
专题《子查询和join查询》中的练习2中的方法一同样是子查询()》3,子查询也会返回大于一个值的结果,为什么不报错?
Answer:那个子查询的逻辑上第三题的正确答案的逻辑是一样的,是用Typename =F.Typename来进行同类型的匹配,将对应的值对应到对应类目上去,并不是一次性返回多个count.
4、第二题中提到的limit 1在别的地方会报错的例子:
将一维表转化为下图二维表:
错误:
后面的m.year=a.year在这里的作用:将月份对应放在外层表a的相应年份上,去掉会报错Subquery returns more than 1 row,因为month=1对应有两个值,去掉后改成limit 1,会运行,但运行得到的结果出错,结果如下,1992年那一行数据会和第一行一样,因为是limit 1 选出来的第一行,会同步到第二行去。
Mysql 这个语句返回了Subquery returns more than 1 row
因为where d_id != (...),这里的子查询只能是一个单值子查询。
将!=改成not in就可以使用多值子查询了。
与主表关联了还是报> Subquery returns more than 1 row
错误在于:lang = 1这里应该加上对应表的简写。比如:lt.lang=1
SELECT sbhms.*,
(select lt.name from sm_basic_home_menu_setting ms LEFT JOIN sm_basic_sy_menu sm ON ms.menu = sm.sys_menu_id and ms.tenant_id= ’keycai’ LEFT JOIN sm_basic_lang_tag lt ON sm.name = lt.tag_id and ms.tenant_id = lt.tenant_id and lt.lang = 1
WHERE ms.tenant_id = ’keycai’ and ms.menu = sbhms.menu) menu_name
FROM sm_basic_home_menu_setting sbhms
WHERE sbhms.tenant_id = ’keycai’
如何解决single-row subquery returns more than one row
Subqueryreturnsmorethan1row:子查询返回值不唯一,意思是必须唯一才正确。很显然是这个子查询的查询结果不唯一出的问题:(selectServiceTimeIdfromjspdb.order)修改法:在这个查询里加上where条件语句,保证查询结果唯一
mysql查询报错Subquery returns more than 1 row
MySQL报Subquery returns more than 1 row这个错误的意思是指子查询的结果多于一行。
解决方法:在子查询的条件语句末尾加 limit 1 。
例如:WHERE ( SELECT cc.ip FROM crawl_site cc WHERE cc.id=this_.site_id)》=_ip.start_ip
用这种条件,WHERE 后边的子查询(SELECT...)里面结果只能是1条,多了就会报“Subquery returns more than 1 row”这样的错误。
扩展资料:
MySQL管理工具:可以使用命令行工具管理 MySQL 数据库(命令 mysql 和 mysqladmin),也可以从 MySQL 的网站下载图形管理工具 MySQL Administrator, MySQL Query Browser 和 MySQL Workbench。
phpMyAdmin是由 php 写成的 MySQ L资料库系统管理程程序,让管理者可用 Web 界面管理 MySQL 资料库。
phpMyBackupPro也是由 PHP 写成的,可以透过 Web 界面创建和管理数据库。它可以创建伪 cronjobs,可以用来自动在某个时间或周期备份 MySQL 数据库。
另外,还有其他的 GUI 管理工具,例如 mysql-front 以及 ems mysql manager, navicat等等。
参考资料:百度百科——mySQL
JAVA的MySQL查询中Subquery returns more than 1 row的报错
看错误信息应是子查询返回多条记录了
select p.c_name from o2o_dep_info p where p.c_code=b.ssbm
select p.NAME from pub_codetable p where p.CODE=a.qjzt
这种东西最好别写在上边。写在from里通过where条件制御。

本文相关文章:
花体文字转化器(帮忙把I love you forever转换成花体,,要下面这种效果~~谢谢)
2026年8月14日 18:30
ps人像磨皮插件(PS磨皮滤镜软件Portraiture3汉化安装教程及使用方法图解)
2026年8月10日 20:50
solidworks2012安装(同一台电脑怎么装两个不同的solidworks版本,比如2015和2012)
2026年7月18日 07:10
cocos creator中文(cocoscreator和cocoscreator3d的区别)
2026年9月22日 02:30
为什么idea里没有for(for和to都是“给”的意思,两者用法有什么区别)
2026年8月21日 12:00
oracle触发器是什么(oracle触发器的具体定义,什么时候用到!其优点是什么!)
2026年8月14日 04:10
下载appstore免费下载(在苹果appstore下载软件要钱不)
2026年8月9日 10:20
更多文章:
cocos creator中文(cocoscreator和cocoscreator3d的区别)
2026年9月22日 02:30
方舟生存进化新物种图鉴中英文对照图鉴 庞马资料图鉴 庞马(Equus magnus)?植物大战僵尸英文版图鉴
2026年9月22日 00:10
html document对象(载入浏览器的html文档都会成为document的对象吗)
2026年9月21日 16:00
安装包怎样下载mysql(如何在官网上下载可安装版的MySQL数据库)
2026年9月21日 15:30
威廉尖叫音效在线(渴求《勇敢的心》的配乐a gift of a thistle下载)
2026年9月21日 15:20



