展开全部
示例:#mysql 表`32313133353236313431303231363533e78988e69d8331333332633663test1`结构:
mysql> desc test1;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| id | int(2) | NO | PRI | NULL | auto_increment |
| label_name | varchar(10) | YES | | NULL | |
| class_id | int(2) | YES | | NULL | |
| father_id | int(2) | YES | | NULL | |
+------------+-------------+------+-----+---------+----------------+
4 rows in set (0.05 sec)
#mysql 表`test1`内容:
mysql> select * from test1;
+----+------------+----------+-----------+
| id | label_name | class_id | father_id |
+----+------------+----------+-----------+
| 1 | sdffds | 1 | 0 |
| 2 | fsd | 2 | 1 |
| 3 | sdsdsd | 2 | 1 |
| 4 | dsf | 2 | 1 |
| 5 | adf | 3 | 2 |
+----+------------+----------+-----------+
5 rows in set (0.00 sec)
#mysql 执行语句:
SELECT a.`id`,a.`label_name`,a.`class_id`,a.`father_id`,
b.`label_name` AS `main_name`,b.`id` AS `main_id`,b.`class_id` AS `main_class`
FROM `test1` AS a LEFT JOIN `test1` AS b ON a.`father_id`=b.`id`;
#mysql查询结果:
mysql> SELECT a.`id`,a.`label_name`,a.`class_id`,a.`father_id`,
-> b.`label_name` AS `main_name`,b.`id` AS `main_id`,b.`class_id` AS `main_class`
-> FROM `test1` AS a LEFT JOIN `test1` AS b ON a.`father_id`=b.`id`;
+----+------------+----------+-----------+-----------+---------+------------+
| id | label_name | class_id | father_id | main_name | main_id | main_class |
+----+------------+----------+-----------+-----------+---------+------------+
| 2 | fsd | 2 | 1 | sdffds | 1 | 1 |
| 3 | sdsdsd | 2 | 1 | sdffds | 1 | 1 |
| 4 | dsf | 2 | 1 | sdffds | 1 | 1 |
| 5 | adf | 3 | 2 | fsd | 2 | 2 |
| 1 | sdffds | 1 | 0 | NULL | NULL | NULL |
+----+------------+----------+-----------+-----------+---------+------------+
5 rows in set (0.00 sec)