sql - MySQL 跳过一个子级别

标签 sql mysql

我有一个表,其中包含父子关系中的位置 ID。它基本上是一个层次结构,如:

State
  -County
     --City

表格用以下列映射层次结构

parentID
childID
type

如果我想获取给定位置的所有子位置,这很简单,例如:

SELECT childID FROM locations_table WHERE parentID = 1234 AND type = 'county'

但是,如果我需要跳过一个子级(例如,跳过县级并只包括特定州的城市),我无法弄清楚哪种 SQL 最适合这样做。

基本上,我试图获取特定 parentID 的子项的子项,但无法弄清楚如何在单个 SQL 语句中获取它。

最佳答案

使用自连接

SELECT childID
FROM locations_table T1
JOIN locations_table T2 ON T1.parentid = T2.childid
WHERE T2.parentID = 1234 AND T1.type = 'county'

关于sql - MySQL 跳过一个子级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3746769/

相关文章:

php - 在 yii 中插入后在表上记录用户 session ID(不能将标量值用作数组)

sql - PGError : ERROR: column "is_required" is of type boolean but expression is of type integer

mysql - 这个 UPDATE 查询有什么作用?

php - 更改父级或删除时更新嵌套集

java - JDBC 告诉无法找到列

mysql - 当我使用 INNER JOIN 时,MariaDB 没有显示任何结果

mysql - 无限制地从表中选择第二大的

mysql - REPLACE INTO 在 MySQL 上不起作用(表结构问题?)

mysql - SSH 连接在 "enter password"之后卡住在 "watch mysqladmin"

mysql - 将客户从 Magento 迁移到 Woocommerce