在相同的 table [SQL] 中查找特定 child 的 parent
Find parent of specific child in the same table [SQL]
我在 phpmyadmin 中 table 看起来像这样:
+-----------+-----------------+-------------------+
|nom_ele_id | nom_ele_title | nom_ele_parent_id |
+===========+=================+===================+
| 7060 | STANDARD | NULL |
| 6953 | SOL | 7060 |
| 6957 | type de sol | 6953 |
+-----------+-----------------+-------------------+
我想要 parent 中的“nom_ele_tile”和我的“nom_ele_parent_id”。
我试试这个:
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" 例如。我的整个 table 是这样的:
+-----------+-----------------+-------------------+
|nom_ele_id | nom_ele_title | nom_parent |
+===========+=================+===================+
| 7060 | STANDARD | NULL |
| 6953 | SOL | STANDARD |
| 6957 | type de sol | 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"
你只需要添加 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'
我在 phpmyadmin 中 table 看起来像这样:
+-----------+-----------------+-------------------+
|nom_ele_id | nom_ele_title | nom_ele_parent_id |
+===========+=================+===================+
| 7060 | STANDARD | NULL |
| 6953 | SOL | 7060 |
| 6957 | type de sol | 6953 |
+-----------+-----------------+-------------------+
我想要 parent 中的“nom_ele_tile”和我的“nom_ele_parent_id”。
我试试这个:
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" 例如。我的整个 table 是这样的:
+-----------+-----------------+-------------------+
|nom_ele_id | nom_ele_title | nom_parent |
+===========+=================+===================+
| 7060 | STANDARD | NULL |
| 6953 | SOL | STANDARD |
| 6957 | type de sol | 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"
你只需要添加 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'