SQL 查询没有返回我所期望的

Posted

技术标签:

【中文标题】SQL 查询没有返回我所期望的【英文标题】:SQL query doesn't return what I expect 【发布时间】:2019-10-08 19:54:23 【问题描述】:

嵌套查询只显示一行。当我添加更多数据时,它会引发错误。

我使用的是 SQL Server 2014。

SELECT  
    ListaMaestra.id_ListaMaestra, ListaMaestra.Clave,
    ListaMaestra.Nombre_P, ListaMaestra.Modulo_P,
    ListaMaestra.Caracteristicas, ListaMaestra.Tipo_Formato,
    ListaMaestra.Fecha_Emision, ListaMaestra.Fecha_Revision,
    ListaMaestra.Revision, ListaMaestra.Norma,
    empleado.nombre, cargo.nombre_cargo,
    (SELECT empleado.nombre FROM ListaMaestra, empleado 
     WHERE ListaMaestra.Nombre_Reviso = empleado.id_empleado) AS Nombre_Elaboro,
    (SELECT cargo.nombre_cargo FROM ListaMaestra, cargo  
     WHERE ListaMaestra.Cargo_Reviso = cargo.id_cargo) AS Cargo_Elaboro,
    ListaMaestra.Estatus, ListaMaestra.Ruta_PDF
FROM 
    ListaMaestra, empleado, cargo
WHERE 
    ListaMaestra.Nombre_Elaboro = empleado.id_empleado 
    AND ListaMaestra.Cargo_Elaboro = cargo.id_cargo

错误:

子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。

【问题讨论】:

请在控制台中包含您的错误 目前还不清楚您要选择什么,但是如果您从每个子选择的from 子句中删除ListaMaestra,问题应该会消失,因为您已经引用了ListaMaestra在主选择的from 子句中。如果您能准确说明您要选择的内容,我可以将其发布为答案。 感谢您的解决方案对我帮助很大,问题已解决 Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI JOIN 语法-92 SQL 标准(25 多年前),不鼓励使用它 @AnibalMelchor - 如果this question of yours 的答案之一解决了您的问题,您可以通过将其标记为已接受来帮助社区。接受的答案有助于未来的访问者自信地使用该解决方案。 【参考方案1】:

如果您从每个子选择的 from 子句中删除 ListaMaestra,问题应该会消失,因为您已经在主选择的 from 子句中引用了 ListaMaestra。

【讨论】:

以上是关于SQL 查询没有返回我所期望的的主要内容,如果未能解决你的问题,请参考以下文章

为啥 SQL 查询的结果没有按我期望的顺序返回?

WordPress ajax 没有返回我所期望的

PHP sql查询不返回表格内容

使用 CASE 作为 dblink 的一部分来获取数据

SQL Bank DB:仅返回具有给定属性的人

SQL 包含问题