在查询数据的时候,我们经常通过与多张表的关联来取得我们想要的数据。
有一天我看到这样一个问题。
刚开始想了好久,工作中大多用到的是一张表和其他的表进行关联查询出来自己想要的数据。
想着用函数,有循环来实现,试了很多次都没有成功。最后又看了一下SQL基础,然后发现自己一叶障目了。
和其他表可以关联,和自己本身也可以关联啊,仔细审题id和parentid明显就是就是让进行关联的。
最后写出来,运行之后得出答案。虽然问题很简单(就是想不到),有时候需要跳出自己的固有思维。
select a.name 城市,b.name 地区,c.name 乡镇,d.name 道路
from address a
join address b on b.parentid = a.id
join address c on c.parentid = b.id
join address d on d.parentid = c.id
where d.name = '凌兆路';
我们来看一下不带where的:
SELECT a.name 城市,b.name 地区,c.name 乡镇,d.name 道路
FROM address a
INNER JOIN address b ON b.parentid = a.id
INNER JOIN address c ON c.parentid = b.id
INNER JOIN address d ON d.parentid = c.id
确实可以行转列
转自:https://blog.csdn.net/weixin_42305304/article/details/80458944