gpt4 book ai didi

MySQL:在另一个子查询中使用子查询结果

转载 作者:行者123 更新时间:2023-11-28 23:46:03 24 4
gpt4 key购买 nike

我需要在 Wordpress 安装中执行以下 MySQL 查询:

  1. 获取类别名称为“Oppskrifter”的类别 ID。
  2. 获取所有这些 ID 的子类别。
  3. 获取生成的子类别的子类别(即 2. 的子类别和 1. 的孙类别)。

我正在尝试使用带别名的子查询来解决这个问题,但我无法让它工作,我也不确定这是最好的方法。这是我目前的看法:

SELECT * FROM
(
SELECT term_id AS oppskrifter_id
FROM wp_terms WHERE name = "Oppskrifter"
) AS R1,
(
SELECT * FROM wp_terms AS t
INNER JOIN wp_term_taxonomy AS tt
ON tt.term_id = t.term_id
WHERE tt.taxonomy = "category" AND tt.parent IN (R1)
) AS R2;

第一个子查询本身工作得很好,但是当引入第二个子查询时它还不知道 R1 是什么,因此我得到错误 ERROR 1054 (42S22): Unknown column “having 子句”中的“R1”。如果我用实际查询替换 R1SELECT term_id AS oppskrifter_id FROM wp_terms WHERE name = "Oppskrifter" 我收到错误消息 ERROR 1060 (42S21): Duplicate列名“term_id”

我在这里想做的是在第二个查询中获取 child (要点 2),然后使用这些结果为孙子做完全相同的事情。

我有哪些解决方案?在速度和可读性方面,正确的做法是什么?

最佳答案

对所有 3 个表使用 Join

注意:将 wp_grand_child 替换为实际表名,将 wg.term_id 替换为实际字段名

SELECT wt.term_id AS oppskrifter_id, wtt.term_id AS child_id, wg.term_id AS grand_child_id
FROM wp_terms AS wt
JOIN wp_term_taxonomy AS wtt ON wtt.term_id = wt.term_id
JOIN wp_grand_child AS wg ON wg.term_id = wtt.term_id
WHERE wt.name = "Oppskrifter"
AND wtt.taxonomy = "category"

关于MySQL:在另一个子查询中使用子查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33539130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com