mysql - 我的sql错误子查询返回超过1行

标签 mysql sql

SELECT * ,
  (SELECT ZoneName 
   FROM zone_message_master 
   WHERE ZoneID = zoneid) 'ZoneName' 
FROM zone_master 
WHERE ZoneID=zoneid;

这是在存储过程中运行的查询,我收到错误

Subquery returns more than 1 row

谁能告诉我我在这里做错了什么?

最佳答案

What I have done wrong here?

你得到的错误非常清楚。子查询必须恰好返回一行,您可以使用 ORDER BY ... LIMIT 1 限制行数。

How can I fix that?

您不需要子查询,直接JOIN这两个表,如下所示:

SELECT z.ZoneId, zm.ZoneName
FROM zone_message_master zm
INNER JOIN zone_master z ON zm.ZoneId = z.ZoneId

关于mysql - 我的sql错误子查询返回超过1行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12834388/

相关文章:

MySQL 虚拟列和通配符

MySQL - 如何按投票总和进行连接和排序?

php - codeigniter 使用 Ignited-Datatables 类卡住连接

sql - 在 WHERE 中使用 IF ELSE 的 PostgreSQL 查询

sql - 社交网络数据库架构?

php - 如何将 UnixDate 转换为 mysql_format 或 php

mysql - SELECT INTO OUTFILE 权限被拒绝,但用户可以写入目录

php - 我如何在创建查询时检查 mysql 数据库表字段值?

Java 或 SQL 在数组中添加缺失的月份

mysql - 如何在 Node js 中执行此异步功能