如何在 MySQL 的子查询中指定父查询字段?

2024-04-08

如何在 MySQL 的子查询中指定父查询字段?

例如:
我用 PHP 编写了一个基本的公告板类型程序。

在数据库中,每个帖子包含:id(PK)和parent_id(父帖子的id)。如果帖子本身就是父帖子,则其parent_id 设置为0。

我正在尝试编写一个 mySQL 查询,该查询将找到每个父帖子以及父级拥有的子级数量。

$query = "SELECT id, (
      SELECT COUNT(1) 
      FROM post_table 
      WHERE parent_id = id
) as num_children
FROM post_table
WHERE parent_id = 0";

棘手的部分是第一个id不知道它应该指的是第二个id它位于子查询之外。我知道我可以执行 SELECT id AS id_tmp ,然后在子查询中引用它,但是如果我还想返回 id 并保留“id”作为列名,那么我必须执行一个返回的查询我有 2 列具有相同的数据(这对我来说似乎很混乱)

$query = "SELECT id, id AS id_tmp, 
            (SELECT COUNT(1)
            FROM post_table
            WHERE parent_id = id_tmp) as num_children
         FROM post_table
         WHERE parent_id = 0";

这种混乱的方式效果很好,但我觉得有机会在这里学习一些东西,所以我想我应该发布这个问题。


怎么样:

$query = "SELECT p1.id, 
                 (SELECT COUNT(1) 
                    FROM post_table p2 
                   WHERE p2.parent_id = p1.id) as num_children
            FROM post_table p1
           WHERE p1.parent_id = 0";

或者如果您在 p1.id 上添加别名,您可能会说:

$query = "SELECT p1.id as p1_id, 
                 (SELECT COUNT(1) 
                    FROM post_table p2 
                   WHERE p2.parent_id = p1.id) as num_children
            FROM post_table p1
           WHERE p1.parent_id = 0";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 MySQL 的子查询中指定父查询字段? 的相关文章

  • 如何通过Elasticsearch模糊匹配电子邮件或电话?

    我想通过 Elasticsearch 对电子邮件或电话进行模糊匹配 例如 匹配所有以以下结尾的电子邮件 gmail com or 匹配所有电话开头136 我知道我可以使用通配符 query wildcard email gmail com
  • PHP严格标准:声明应该兼容

    我有以下类层次结构 class O Base class O extends O Base abstract class A Abstract public function save O Base obj class A extends
  • MySQL 与日语字符

    我试图弄清楚如何创建一个表 以便我可以在其中插入日语名字 现在我有 Type InnoDB Encoding UTF 8 Unicode utf8 Collation utf8 general ci 但是 当我插入字符时 它显示为 当我使用
  • Symfony2 Assetic 和 Less Sourcemaps

    我不确定如何破解 assetic less 过滤器以输出源映射文件 我这里指的是LessFilterhttps github com kriswallsmith assetic blob master src Assetic Filter
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • preg_match_all 查询仅显示有问题的外部组

    我无法弄清楚如何只显示 preg 查询的外部组级别 我会给你一个例子 preg match all start end input matches 这个输入start1 start2 2end 1end产生这个输出start1 start2
  • 从 .phar 存档中提取文件

    对于 Phar 文件 我完全错过了一些东西 我正在安装一个需要 phpunit pdepend 和其他依赖项的项目 我将它们作为 phar 文件获取 但是 我无法使用命令行工具 php 命令 从中提取文件 我用谷歌搜索了这个问题 但没有发现
  • 在 NodeJS 中将子进程的输出保存在父进程的变量中

    我想在 NodeJS 中启动一个子进程并将其输出保存到一个变量中 以下代码将其提供给标准输出 require child process execSync echo Hello World stdio inherit 我的想法与此代码类似
  • PHP 脚本可以在终端中运行,但不能在浏览器中运行

    我正在尝试执行exec命令 但我遇到了问题 当我运行以下代码时 当我通过浏览器运行它时它不起作用 但如果我把输出 str将其复制并粘贴到终端中 它工作得很好 造成这种情况的原因是什么 我该如何解决 目前我正在运行localhost php
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • 随机组合 MySQL 数据库中的两个单词

    我有一个包含名词和形容词的数据库 例如 id type word 1 noun apple 2 noun ball 3 adj clammy 4 noun keyboard 5 adj bloody ect 我想创建一个查询 它将抓取 10
  • mysql排序和排名语句

    我需要一些 mysql 语句的帮助 我的表 1 有 7 列 表 2 有 8 列 额外的列名为排名 我的语句应该是这样的 从表 1 中选择全部 然后按 用户数 排序 将其插入表 2 中并排名开始 1 2 3 等 table 1 usernam
  • 通过 $_SESSION 从一个脚本发送到另一个脚本期间数据丢失

    我正在尝试将一个充满属性的对象从一个 PHP 发送到另一个 PHP SESSION object obj where obj是一个用 foreach 循环指定的对象 foreach array of objects as obj SESSI
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • CURL 中的 data-urlencode 是什么意思?

    我搜索了很多个小时试图弄清楚 php curl 中的 data urlencode 是什么 我尝试过这个 但我认为这是不对的 xmlpost object1 file https www lob com goblue pdf 在文档中是 d
  • MySQL 转储未知选项“-no-beep”

    在旧服务器上我使用了mysql转储命令来备份 MySQL 数据库 在新服务器上 MySQL 版本为 5 6 相同的命令给出了错误 unknown option no beep 无论它插入什么 我也在互联网上搜索过 但找不到任何帮助 在 my
  • 一次播种多行 laravel 5

    我目前正在尝试为我的用户表播种 如果我像这样尝试 2 行 就会失败 如果我只使用单个数组而不是 users 数组内的 2 个数组来创建一些假数据 那么效果很好 我做错了什么 正确的方法是什么 class UserTableSeeder ex
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • Magento - 自定义支付模块

    这是一个非常普遍的问题 但这里是 我正在尝试在 Magento 中创建一个自定义支付模块 我创建了一个 常规 模块 可以连接到 Magento 事件 观察者模型 但是我如何告诉 Magento 将模块视为支付模块 以便它显示在管理后端和结账

随机推荐

  • 检索 iOS 中所有联系人的电话号码

    到目前为止 我看到了如果我显示一个选择器 则可以获取多个电话号码的方法 以便用户可以选择人员 然后获取电话号码 我想要的是检索所有联系人的号码 有可能吗 试试这个它适用于iOS 6 以及 iOS 5 0 或更早版本 示例项目演示 https
  • 如何在Vim终端模式下复制粘贴?

    我经常想从 terminal窗口到普通文本缓冲区 此刻我exitshell 会话并从历史记录中复制 一定有更好的方法 Copy To copy from a terminal window press CTRL W N This is a
  • 提交表单时Spring绑定异常

    卡住了 不知道为什么 Spring Form 在 get 中预填充时无法成功提交 给出绑定问题 Request call loadForm 但在方法中填充时工作正常setupFormObject with ModelAttribute注释标
  • wkhtmltopdf 和基于表单的身份验证

    我有一个使用基于表单的身份验证的应用程序 我正在尝试获取应用程序中页面的副本并使用 wkhtmltopdf 将其保存为 PDF wkhtmltopdf 已安装并且工作正常 我可以从应用程序内成功调用它来生成另一个网站的 PDF 无需身份验证
  • Rails has_many 自引用

    我的帐户模型如下 简化 class Account lt ActiveRecord Base attr accessible account number display name master account id has many ch
  • 如何在python中更改iBus输入法?

    我正在编写一个 Vim 插件来设置 iBus 引擎和输入法 到目前为止 我可以使用以下代码更改引擎 function im setEngine name python lt lt EOF try import ibus vim bus ib
  • .Net 3.5 日志记录

    我是一个相当新的 C 程序员 我想知道是否有人可以向我提供有关如何在现有解决方案中使用日志框架的更多信息 如果您这么称呼它 我正在尝试记录我正在做的项目 我想知道有哪些好的和简单的框架以及它们应该如何实现 我应该研究一个特定的主题吗 我还没
  • MongoDB 架构设计 - 实时聊天

    我正在启动一个项目 我认为该项目特别适合 MongoDB 因为它提供的速度和可扩展性 我目前感兴趣的模块是与实时聊天有关的 如果我要在传统的 RDBMS 中执行此操作 我会将其分为 频道 一个频道有很多用户 用户 一个用户有一个频道但有多条
  • 如何阻止 Maven 尝试访问 http://repo.maven.apache.org?

    开发机无法上网 大约60秒超时 当我尝试构建时 我看到 Downloading http repo maven apache org maven2 com google gsa connector 2 8 0 gsa connector 2
  • Cloud Functions Firebase v1.0 不会初始化

    随着 Firebase 云功能的最新更新 我在初始化应用程序以及数据库引用时遇到错误 第一个错误 以下应该基于 Firebase 函数 v1 0 文档和示例进行工作 https github com firebase Friendlycha
  • 确定合时坐标

    今天金星的下合 虽然由于太阳偏北而仍然可以观测到 激发了 pyEphem 的以下研究 确定金星与太阳下合的日期 pyEphem 中是否有金星和太阳之间 劣 合相的搜索功能 确定该日期金星的黄道纬度 那应该很容易 对过去 100 年和未来 1
  • 按自定义顺序对对象数组进行排序

    我有一个对象数组 其中有一个名为 CODE 的属性 ID 168 NAME First name CODE AD ID 167 NAME Second name CODE CC ID 169 NAME Third name CODE CCM
  • 如何更改Android弹出菜单的背景颜色

    我通过查询数据库生成菜单的每个选项 这是我的代码 final PopupMenu popupMenu new PopupMenu getBaseContext v SQLiteDatabase db AdapterDb getReadabl
  • 使用 Create-React-App 进行 VSCode 调试

    我想设置 VS Code 来调试使用 create react app 创建的 React app 我尝试过这个配置 version 0 1 0 configurations name Launch node type node reque
  • 用什么来做多重相关?

    我正在尝试使用 python 来计算响应数组和一组预测变量之间的多重线性回归和多重相关性 我看到了计算多元线性回归的非常简单的示例 这很容易 但是如何使用 statsmodels 计算多重相关性呢 或与其他任何东西一起作为替代 我想我可以使
  • 获取程序集的原始源代码位置

    有没有办法获取程序集的位置原始源代码通过反射定位 Warning 我不是在寻找程序集的当前位置 而是在编译源代码时所在的位置 e g Given myAssembly dll c program files myapp myAssembly
  • 我可以创建使用 WPF 显示的 Visual Studio 2010 外接程序吗?

    我们正在致力于为我们的企业应用程序创建专门的图形编辑器 我们研究并拒绝了 DSL 理想情况下 我希望编辑器的主界面像代码窗口一样停靠 并使用 WPF 进行绘图 谁能给我指出一些文档 让我走上正确的道路 Thanks Colin 更新 它开始
  • 无法在 Stripe Webhook 中检索会话的变量值

    我正在我的网站中设置 Stripe 订阅 Webhook 我按照文档进行操作 现在 Webhook 已设置在我的网站中 现在 我希望更新网站数据库上的一条记录 其中在我的一个用户订阅我的会员计划后 记录上的一列被设置为另一个值 我尝试在会话
  • 在散景中使用 x 轴上的月份

    假设我有以下数据 import random import pandas as pd numbers random sample range 1 50 12 d month range 1 13 values numbers df pd D
  • 如何在 MySQL 的子查询中指定父查询字段?

    如何在 MySQL 的子查询中指定父查询字段 例如 我用 PHP 编写了一个基本的公告板类型程序 在数据库中 每个帖子包含 id PK 和parent id 父帖子的id 如果帖子本身就是父帖子 则其parent id 设置为0 我正在尝试