请教一个 sql 问题,在线等.

2018 年 11 月 24 日
 chaleaochexist
书到用时方恨少哈.

爷爷表
爸爸表
儿子表 1
儿子表 2

想关联查询所有爷爷.id = 1 的所有子孙数据.

select * from 爷爷
left join 爸爸
on 爷爷.id=爸爸.爷爷_id
left join 儿子 1
on 儿子 1.爸爸_id = 爸爸.id
left join 儿子 2
on 儿子 2.爸爸_id = 爸爸.id

这么写没毛病吧?
2650 次点击
所在节点    程序员
8 条回复
kely
2018 年 11 月 24 日
直接从爸爸表开始查,爸爸表上本身有 爷爷_id。
petelin
2018 年 11 月 24 日
from 爷爷查出来的是爷爷吧
kran
2018 年 11 月 24 日
写两条 SQL 就完事了啊,干嘛非得塞一条里
mwiker
2018 年 11 月 24 日
select t.* from 儿子 1 t inner join 爸爸 t2 on t.爸爸_id = t2.id and t2.爷爷_id = 1
union all
select t.* from 儿子 2 t inner join 爸爸 t2 on t.爸爸_id = t2.id and t2.爷爷_id = 1
xipushi
2018 年 11 月 24 日
Sql 没毛病啊。儿子表为什么有两个?爸爸表爷爷表只有一个?
JackieMe
2018 年 11 月 24 日
中文编程指日可待啊
lsido
2018 年 11 月 24 日
秀儿
cc959798
2018 年 11 月 24 日
union all 解决,并且不需要连接爷爷表

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/511012

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX