如何在 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 的子查询中指定父查询字段? 的相关文章

  • 如何使用 PHP 动态插入 CSS 类?

    下面的代码有什么问题 我想在相应的情况下动态插入 当前 CSS 类 li 单击元素 谢谢 section section li
  • SQL 按计数排序

    如果我有一个表和这样的数据 ID Name Group 1 Apple A 2 Boy A 3 Cat B 4 Dog C 5 Elep C 6 Fish C 我希望根据 Group 的总和从小到大进行排序 例如 A 2条记录 B 1条记录
  • 如何使用 PHP 查找目录中的前 5 个文件?

    如何使用 PHP 列出按字母顺序排序的目录中的前 5 个文件或目录 Using scandir array slice array filter scandir path to dir is file 0 5 The array filte
  • PHP:在多维数组中查找相同的键并合并结果

    我有一个多维数组 如下所示 array 0 gt array WS gt array id gt 2 name gt hello 1 gt array SS gt array id gt 1 name gt hello2 2 gt arra
  • PHP服务器端IAB验证openssl_verify总是返回0

    我使用以下函数 服务器端 php 来验证 IAB v3 事务 我从 Android 应用程序传递过来 Override protected void onActivityResult int requestCode int resultCo
  • HTTP_REFERER 返回 NULL,$_SERVER 中不存在密钥

    使用以来第一次 SERVER HTTP REFERER 它给了我NULL因此 当我做var dump SERVER the HTTP REFERER密钥不存在 我还尝试使用不同的浏览器和不同的网站访问网站 但没有结果 该网站在基于 Linu
  • 拉拉维尔; “SQLSTATE[HY000] [2002] 连接被拒绝”

    我在 OSX 主机上设置了 homestead 2 0 并使用 Sequel Pro 我可以进行迁移并确认数据已在Sequel Pro中迁移 因此看起来数据库连接没有问题 但是 一旦我尝试从 Laravel 4 2 应用程序获取数据 它就无
  • 正则表达式替换混合数字+字符串

    我想删除所有包含数字的单词 示例 LW23 London W98 String 从上面的字符串中我唯一想保留的是 London String 这可以用正则表达式来完成吗 我目前正在使用 Python 但 PHP 代码也很好 Thanks E
  • 返回上一页

    我正在使用表格来 评价 页面 此表单将数据 发布 到其他地方的 php 脚本 我只是想在处理表单后显示一个链接 这将使用户返回到上一页 我可以在 php 脚本中使用 javascript 来执行此操作吗 GF 您可以使用链接来调用histo
  • 将单独的月、日和年值转换为时间戳

    我有月份值 1 12 日期值 1 31 和年份值 2010 2011 2012 我还有一个小时值和一个分钟值 我怎样才能把这个给strtotime 它可以以某种方式将其转换为时间戳吗 当您已经知道年月和日期时 为什么将字符串转换为日期 us
  • 如何使用多个数据库设置 symfony 3 学说迁移?

    我在验证和更新模式时努力让 symfony doctrine 排除数据库视图 我第一次尝试没有教条迁移 看到这个问题 https stackoverflow com questions 46775200 symfony 3 doctrine
  • 将自定义参数传递给 Symfony2 中的自定义 ValidationConstraint

    我正在 Symfony2 中创建一个表单 表格只包含一个book字段允许用户在列表中进行选择Books实体 我需要检查是否选择了Book属于Author我的控制器里有 public class MyFormType extends Abst
  • 如何编写可以补偿拼写错误数据的 MySQL 搜索?

    有没有什么方法可以编写一个 MySQL 搜索来弥补用户在拼写等方面的错误 作为随机示例 有人可能会输入 电子邮件受保护 cdn cgi l email protection代替 电子邮件受保护 cdn cgi l email protect
  • 如何比较行内的重叠值?

    我似乎对这个 SQL 查询有问题 SELECT FROM appts WHERE timeStart gt timeStart AND timeEnd lt timeEnd AND dayappt boatdate 时间格式为军用时间 物流
  • 重置 MySQL root 密码不起作用

    我花了很多时间阅读并尝试了数十种重置 root 密码的方法 但我一无所获 我发现 并尝试过 的最完整的说明如下 顺便说一句 我在 Win7 32 位上运行 MySQL 5 5 我创建了一个文件 c mysqlinit txt 其中包含两行
  • 如果文件名减去扩展名,.htaccess url 重写行为将被覆盖。与网址相同

    我正在尝试整理 URL 并从中删除 php 扩展名等 我位于网站的基本文件夹中 因此没有可以优先处理的父 htaccess 文件或其他文件 这是我的 htaccess 代码 RewriteEngine On RewriteRule give
  • 为什么我的 NHibernate 包集合没有动态设置子项的“父 ID”?

    我有一个新对象 其中包含一些作为 IList 属性的新对象的集合 我通过sql探查器看到正在执行两个插入查询 一个用于父级 它具有新的guid id 另一个用于子级 但是 引用父级的子级上的外键是一个空guid 这是我在父级上的映射
  • 在 Windows 上查看 PHP 文件夹

    我正在编写一个简单的 PHP 脚本来监视文件夹及其子文件夹的任何更改 新文件 修改 删除 然后执行操作 我将使用 Windows 上的命令行运行此脚本php f script php 我一直在寻找一种在 Windows 上观看具有 PHP
  • PHPunit - 错误

    当 PHPunit 框架不希望发生的错误发生时 测试会停止 PHP 会抛出错误 但 PHPunit 不会记录这是一个错误 我如何确保 PHPunit 将其记录为错误 免责声明 我是 PHPUnit 的新手 我也试图弄清楚 发生错误时会发生什
  • MYSQL 的 Google OAuth 2.0 用户 ID 数据类型

    我正在实施 Google OAuth 2 0 并注意到 Google OAuth 返回的唯一用户 ID 是21位数字长的 我想大整数 20 足以满足这种需求 但我现在看到 Google OAuth 返回的用户 ID 的长度感到困惑 关于我应

随机推荐

  • 检索 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 我正在尝试