MySQL仅当查询包装为子查询时出现重复列错误

2024-02-24

我有一个如下所示的选择查询:

SELECT * FROM A
LEFT JOIN B ON B.x = A.y
LEFT JOIN C ...
WHERE ....
GROUP BY ...
ORDER BY ...;

所有桌子都有id列和查询运行良好。结果有很多id列没有错误并且驱动程序处理不明确的问题。但我需要对结果进行限制,所以我用另一个选择查询将其包装起来,如下所示:

SELECT * FROM (
    SELECT * FROM A
    LEFT JOIN B ON B.x = A.y
    LEFT JOIN C ...
    WHERE ....
    GROUP BY ...
    ORDER BY ...
) AS x WHERE 1 LIMIT 1000;

现在我明白了Duplicate column name 'id' error!

PS:完整的查询很复杂,我需要使用*(不可能列出列名),并且由于联接、按顺序分组等原因,我无法在主查询中使用限制。


您收到错误的原因是由于别名AS X。但问题确实是你使用了*,而不是列出您想要的字段。

在第一个查询中,SELECT *实际上会产生如下字段:

A.id, A.name, A.description, B.id, B.name, B.date_started, C.id, C.name, C.isDeleted

这工作得很好,除非您尝试直接通过名称引用字段并且不使用它的别名。不管怎样,你的 SQL 引擎不会有这个问题,但无论你对结果集做什么,仍然可能有问题。

但是,当您将查询移至子查询并为结果添加别名时AS X,那么你最终会得到:

X.id, X.name, X.description, X.id, X.name, X.date_started, X.id, X.name, X.isDeleted

现在你可以明白它为什么抱怨了。你会明白为什么它也不好用*,因为这种组合可能会工作一段时间,然后您向现有表添加一个新字段,该字段与另一个表相同,然后砰,您使用这两个表编写的每个查询现在都需要重写。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL仅当查询包装为子查询时出现重复列错误 的相关文章

  • SQL Server 2008 中的全文搜索一步一步

    如何开始使用SQL Server 2008 中的全文搜索 阅读这些链接 SQL SERVER 2008 创建全文目录和全文搜索 http blog sqlauthority com 2008 09 05 sql server creatin
  • 使用显式创建表语句与 select into 创建表

    使用显式创建表语句和加载数据与选择数据之间是否存在性能差异 此示例仅显示 2 列 但问题是针对使用非常大的表 下面的示例也使用临时表 尽管我也想知道使用常规表的效果 我认为无论表格类型如何 它们都是相同的 临时表场景 Explicitly
  • 使用 Laravel 和 Eloquent 从表中选择全部

    我正在使用 Laravel 4 设置我的第一个模型 以从名为的表中提取所有行posts 在标准 MySQL 中我会使用 SELECT FROM posts 如何在 Laravel 4 模型中实现这一目标 我的完整模型源代码如下
  • 当我尝试计算 mysqli 结果时,为什么会收到警告?

    下面的代码会导致此警告 警告 count 参数必须是数组或实现 Countable 的对象 为什么要这样做 如何防止出现警告 if isset GET edit sonum GET edit update true result mysql
  • MySQL - 查找接近的匹配项

    MySQL 有没有办法在文本字段中找到紧密匹配的内容 说找到 email protected cdn cgi l email protection当搜索时 email protected cdn cgi l email protection
  • 如何获取Postgres当前的可用磁盘空间?

    在开始在数据库中进行某些工作之前 我需要确保至少有 1Gb 的可用磁盘空间 我正在寻找这样的东西 select pg get free disk space 是否可以 我在文档中没有找到任何相关内容 PG 9 3 操作系统 Linux Wi
  • 如何在“order by”中添加条件?

    我有一个带有输入参数的存储过程 现在根据这个参数 我的 order by 语句将发生变化 如果输入参数是 ID int类型列 则按ID排序 如果是 ProductType 则按产品类型排序 如果是 IssueDate 则应按问题日期排序 现
  • 在 Oracle 中使用数据透视表的建议

    我需要一份报告 我应该使用数据透视表 报告将按类别分组 使用 case when 语句不好 因为有很多类别 您可以将 Northwind 数据库视为示例 所有类别将显示为列和报告将显示客户在类别中的偏好 我不知道另一个解决方案 并在互联网上
  • 将数据表传递到存储过程。有没有更好的办法?

    数据表可以以某种方式传递到 SQL Server 2005 或 2008 中吗 我知道标准方法似乎是将 XML 传递给 SP 并且可以通过某种方式轻松地将数据表转换为 XML 来实现这一点 将 NET 对象传递到 SP 怎么样 那可能吗 我
  • DataTables 第 2 页的分页未调用放大弹出窗口

    所以我有这个启用分页的数据表 我编码了一种方式 以便用户可以编辑表的行 当用户调用它在放大弹出窗口中打开的编辑页面时 它在第 1 页 从第 2 页起都运行良好 DataTable 及其前面停止调用 Magnific Popup 我只是不明白
  • 如何修复“未知变量'sql-mode = ANSI'”?

    使用 MySQL 5 5 27 在 my cnf 中我有 mysql sql mode ANSI 启动 mysql 控制台后我得到 unknown variable sql mode TRADITIONAL MySQL 文档服务器 SQL
  • Apache 子进程已退出,状态为 255

    经过大量的搜索 尝试 修复 等待和哭泣 在我放弃之前 我想为这个错误抓住最后的机会 我们正在奔跑Microsoft Windows Server 2012 Apache 2 4 6 Win64 OpenSSL 1 0 1e PHP 5 5
  • 什么是更好的?子查询或内连接十个表?

    一个旧系统已抵达我们的办公室进行一些更改和修复 但它也存在性能问题 我们并不确切知道这种缓慢的根源是什么 当我们重构旧代码时 我们发现了几个具有以下模式的 sql 查询 出于示例目的 简化了查询 SELECT SELECT X FROM A
  • MySQL 两种日期格式之间的转换

    用户将以这种格式输入日期 2017 年 2 月 17 日 存储在 mysql 数据库中的日期格式如下 2015 02 17 00 00 00 我想做的是 SELECT FROM insurance where DATE FORMAT in
  • 批处理文件并与数据库比较

    目前我正在开发一个 Spring Boot 应用程序 该应用程序定期尝试处理包含用户数据的文件 其中每行都包含userId and departamentId隔开 例如123534 13 该文件将包含数百万条记录 我的要求是以这样的方式将此
  • 无法加载身份验证插件“caching_sha2_password”

    我正在将 MySQL 8 0 与 MySQL Workbench 连接并收到以下错误 无法加载身份验证插件 caching sha2 password dlopen usr local mysql lib plugin caching sh
  • 索引在 NOT IN 或 <> 子句中起作用吗?

    我读过 至少 Oracle 数据库中的普通索引基本上是 B 树结构 因此存储处理适当根节点的记录 小于 根的记录被迭代地存储在树的左侧部分 而 大于 根的记录被存储在右侧部分 正是这种存储方法有助于通过树遍历实现更快的扫描 因为深度和广度都
  • Postgres 按查询分组

    我正在尝试在 postgres 的查询中使用 group by 我无法让它按照我想要的方式工作 以便根据需要对结果进行分组 这是另一个堆栈问题的扩展我刚刚回答过的递归查询 https stackoverflow com questions
  • 如何对字段数据进行分组?

    我有 sql 查询来显示数据 SELECT artikel foto naam fotografer id fotografer name fotografer customer first name customer last name
  • Mysql加密/存储敏感数据,

    我的 PHP 网站有以下内容 启用 SSL 饼干 session set cookie params cookieParams lifetime cookieParams path cookieParams domain secure ht

随机推荐

  • 为什么即使我设置了随机种子,我也无法在 Keras 中获得可重现的结果?

    我正在 Mac OSX 上使用 Keras 在虚拟数据上训练 MobileNet 架构 我都设置了nump random and tensorflow set random seed 但由于某些原因 我无法获得可重现的结果 每次重新运行代码
  • 您知道 NTSC 解码器 API 吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 API 可以用来解码模拟信号的数字样本 根据 http en wikipedia org
  • if fi [: 参数太多

    这个脚本有什么问题吗 if grep q
  • 如何更改LocationRequest的间隔

    我将应用程序设置为每 5 秒获取一次位置通知 mLocationRequest LocationRequest create mLocationRequest setPriority LocationRequest PRIORITY HIG
  • 如何跟踪点击时正确的标注附件视图的位置

    正如您在下面看到的 我有一个带有右键的注释视图 当用户点击右侧按钮时 我将呈现一个弹出窗口 问题是我不知道用户点击的位置 因此我没有 X 和 Y 来相应地显示弹出窗口 如何找出用户点击的位置 即 X 和 Y HotelAnnotationV
  • 如何快速检查一个对象是否是动态类类型?

    我正在实现一个名为的函数ofType它过滤掉给定类型的所有元素 这是我的代码 class Animal class Mammal Animal class Monkey Mammal class Pig Mammal class Human
  • 如何调试 Firefox 扩展,它似乎无声地崩溃

    我不知道如何调试我的简单扩展 脚本 内容脚本 加载 因为第一个 console log 调用显示在选项卡的控制台中 但随后什么也没有 没有任何错误 也没有第二次 console log 调用 我的问题不是关于解决我的代码问题 肯定有一个 如
  • Matplotlib/Pandas 中条形图的优化

    代码 df pd DataFrame 770 215 179 107 83 82 70 60 57 54 52 index A B C D E F G H I J K ax df plot kind bar stacked False al
  • java 解组 LocalDateTime

    这是我的适配器类 public class LocalDateTimeAdapter extends XmlAdapter
  • 在同一 lambda 函数中从不同帐户访问两个表

    是否可以在一个 lambda 函数中访问两个表 其中一个表与 lambda 函数位于同一帐户中 另一个表位于另一个帐户中 我看过有关的文章跨账户访问委托 https docs aws amazon com IAM latest UserGu
  • 如何在Java中实现具有单应性方法的接口?

    在英语中 同形异义词对是具有相同拼写但不同含义的两个单词 在软件工程中 一对单应性方法是名称相同但要求不同的两种方法 让我们看一个人为的示例 以使问题尽可能清楚 interface I1 return 1 int f interface I
  • Ansible,角色未找到错误

    我尝试对本地主机播放以下剧本来配置 Vagrant 机器 hosts all become yes roles base jenkins 我已经从 github 克隆了必要的角色 它们位于相对路径中roles role name 执行以下命
  • 设置 CLion 构建和二进制目录

    我正在尝试在 CLion 的项目中构建 libwebsockets 在构建期间 libwebsockets 创建其他文件所需的头文件并将其放入 PROJECT BINARY DIR 中 CLion 在为项目创建的随机构建目录中构建所有内容
  • Google MarkerClusterer:对低于特定缩放级别的标记进行分簇?

    我正在使用 Google MarkerClusterer 每当地图缩放级别超过 15 时 我想对所有标记进行分簇 有一个maxZoom在配置选项中设置 但是文档没有明确说明它应该做什么 http google maps utility li
  • 如何在应用程序类中获取屏幕显示指标

    如果我把它放在某个活动类中 它会完美地工作 但是 当我将它放在我的应用程序类中时 该方法getWindowManager 找不到 有什么方法可以在应用程序类中获取 WindowManager 吗 我的应用程序类定义如下 public cla
  • JavaScript 游戏框架

    如今与
  • Heroku docker spring boot 镜像错误 503 H14

    几天前 我尝试将 Spring Boot 应用程序的 docker 镜像部署到 heroku 中 我有以下泊坞窗文件 FROM openjdk 8 jdk alpine LABEL maintainer email protected cd
  • java循环重复程序

    我对 Java 非常陌生 我已经在上课的第二周左右了 我需要我的程序根据用户继续运行或退出 这是一个工资计算 我希望最后说 你想继续吗 y n 我希望 Y 重复我的整个问题程序和不结束程序 我正在使用 Jgrasp 而且我是非常非常新的 我
  • 如何在 FiraCode for Visual Studio 2015 中启用连字

    我下载了 FiraCode 字体 并选择它作为 Visual Studio 中的字体 然而 连字没有显示 并且 wiki 没有针对 Visual Studio 的任何特殊说明 尽管他们暗示它可以工作 因为它列在其 WORKS 列中以提供编辑
  • MySQL仅当查询包装为子查询时出现重复列错误

    我有一个如下所示的选择查询 SELECT FROM A LEFT JOIN B ON B x A y LEFT JOIN C WHERE GROUP BY ORDER BY 所有桌子都有id列和查询运行良好 结果有很多id列没有错误并且驱动