【问题标题】:Find parent of specific child in the same table [SQL]在同一个表中查找特定子项的父项 [SQL]
【发布时间】:2021-10-06 00:35:53
【问题描述】:

我在 phpmyadmin 中有这样的表格:

+-----------+-----------------+-------------------+
|nom_ele_id | nom_ele_title   | nom_ele_parent_id | 
+===========+=================+===================+
| 7060      | STANDARD        |   NULL            |  
| 6953      | SOL             |   7060            | 
| 6957      | type de sol     |   6953            |
+-----------+-----------------+-------------------+

我想用我的“nom_ele_parent_id”拥有父级的“nom_ele_tile”。
我试试这个:

SELECT a.nom_ele_id, a.nom_ele_title, b.nom_ele_title AS 'nom_parent' 
FROM `immo_nomenclature_element` AS a 
LEFT JOIN `immo_nomenclature_element` AS b 
    on a.`nom_ele_parent_id` = b.`nom_ele_id`

但是对于这个请求,我不能使用 WHERE nom_ele_title="type de sol" 来举例。我得到我的整个表是这样的:

+-----------+-----------------+-------------------+
|nom_ele_id | nom_ele_title   | nom_parent        | 
+===========+=================+===================+
| 7060      | STANDARD        |   NULL            |  
| 6953      | SOL             |   STANDARD        | 
| 6957      | type de sol     |   SOL             |
+-----------+-----------------+-------------------+

【问题讨论】:

  • 请标记您正在使用的数据库平台。
  • 是的!我使用 phpmyadmin
  • phpMyAdmin 不是数据库平台。
  • 好的。我已经为你添加了 MySQL 标签。 phpmyadmin 是 MySQL 的 Web 客户端,而不是数据库平台本身。
  • SELECT a.nom_ele_id, a.nom_ele_title,b.nom_ele_title FROM [immo_nomenclature_element] as a left join [immo_nomenclature_element] as b on a.nom_ele_parent_id=b.nom_ele_id where a.nom_ele_title='type de sol'

标签: mysql sql phpmyadmin


【解决方案1】:

您只需要添加where 子句:

SELECT a.nom_ele_id, a.nom_ele_title, b.nom_ele_title AS 'nom_parent' 
FROM `immo_nomenclature_element` AS a 
LEFT JOIN `immo_nomenclature_element` AS b 
    on a.`nom_ele_parent_id` = b.`nom_ele_id`
where a.nom_ele_title='type de sol'

【讨论】:

  • 它工作得很好,谢谢你我试过问题是我忘记了“a”。在“nom_ele_title”之前........
【解决方案2】:

我不确定你的问题是否正确。

如果 nom_ele_title="type de sol" ,您只想要一个 nom_parent ,对吗?

然后你可以在你的加入条件中添加一个“and nom_ele_title="type de sol”。

 SELECT    a.nom_ele_id,
          a.nom_ele_title,
          b.nom_ele_title             AS 'nom_parent'
FROM      `immo_nomenclature_element` AS a
LEFT JOIN `immo_nomenclature_element` AS b
ON        a.`nom_ele_parent_id` = b.`nom_ele_id and a.nom_ele_title="type de sol"

【讨论】:

  • 是的,没错!有人找到了上面的答案。我测试了你的请求,它返回的结果和我的一样……我不明白为什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多