簡體   English   中英

在同一表中查找特定子項的父項 [SQL]

[英]Find parent of specific child in the same table [SQL]

我在 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             |
+-----------+-----------------+-------------------+

你只需要添加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'

我不確定你的問題是否正確。

如果 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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM