mysql 从另一个表中获取 ID 的名称和父 ID?
mysql get name of id and parent id from another tabel?
我有 2 个 table.
table1: [id, parent_id, name_id]
table2: [name_id, 姓名]
我想为每个 id 显示连接到 table2 的 name_id 的名称和父级的名称(parent_id 代表同一个 table1)
示例:
table1:
id parent_id name_id
1 0 100
2 1 101
table1:
name_id name
100 food
101 fruit
output:
id parent_id name_id name_id parent_name_id
1 0 100 food 0
2 1 101 fruit food
现在,我在这里,带着 name_id
的名字
SELECT table1.id, table1.parent_id , table1.name_id , table2.name_it
FROM table1 join table2 on table1.name_id = table2.name_id
output:
id parent_id name_id name_id
1 0 100 food
2 1 101 fruit
我怎样才能得到 parent_name_id?谢谢
您可以进行多个连接:
select t1.*, t2.name, t20.name parent_name
from table1 t1
inner join table2 t2 on t2.name_id = t1.name_id
left join table1 t10 on t10.id = t1.parent_id
left join table2 t20 on t20.name_id = t10.name_id
通过使用别名,您可以引用相同的 table 两次,加入每个 id 字段。
SELECT a.id,
a.name_id,
b.name as name,
a.parent_id,
c.name as parent,
FROM table1 as a
join table2 as b on a.name_id = b.name_id
join table2 as c on a.parent_id = c.name_id
您可以使用多个联接并为它们指定别名以供使用。类似的东西(未经测试)
SELECT table1.id, table1.parent_id , table1.name_id , table2.name_it, t2_parent.name as parent_name
FROM table1
join table2 on table1.name_id = table2.name_id
join table1 t1_parent on t1_parent.id = table1.parent_id
join table2 t2_parent on t1_parent.name_id = table2.name_id
我有 2 个 table.
table1: [id, parent_id, name_id]
table2: [name_id, 姓名]
我想为每个 id 显示连接到 table2 的 name_id 的名称和父级的名称(parent_id 代表同一个 table1)
示例:
table1:
id parent_id name_id
1 0 100
2 1 101
table1:
name_id name
100 food
101 fruit
output:
id parent_id name_id name_id parent_name_id
1 0 100 food 0
2 1 101 fruit food
现在,我在这里,带着 name_id
的名字SELECT table1.id, table1.parent_id , table1.name_id , table2.name_it
FROM table1 join table2 on table1.name_id = table2.name_id
output:
id parent_id name_id name_id
1 0 100 food
2 1 101 fruit
我怎样才能得到 parent_name_id?谢谢
您可以进行多个连接:
select t1.*, t2.name, t20.name parent_name
from table1 t1
inner join table2 t2 on t2.name_id = t1.name_id
left join table1 t10 on t10.id = t1.parent_id
left join table2 t20 on t20.name_id = t10.name_id
通过使用别名,您可以引用相同的 table 两次,加入每个 id 字段。
SELECT a.id,
a.name_id,
b.name as name,
a.parent_id,
c.name as parent,
FROM table1 as a
join table2 as b on a.name_id = b.name_id
join table2 as c on a.parent_id = c.name_id
您可以使用多个联接并为它们指定别名以供使用。类似的东西(未经测试)
SELECT table1.id, table1.parent_id , table1.name_id , table2.name_it, t2_parent.name as parent_name
FROM table1
join table2 on table1.name_id = table2.name_id
join table1 t1_parent on t1_parent.id = table1.parent_id
join table2 t2_parent on t1_parent.name_id = table2.name_id