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 查询没有返回我所期望的的主要内容,如果未能解决你的问题,请参考以下文章