SQL 问题,求助一下 关于附父表和子表的问题,不知道怎么在标题里描述

2018-09-30 11:31:49 +08:00
 zhuangzhimin

1、有两个表 A 表 和 B 表 C 表。 A-B,B-C,都是 1-N 的关系 , 一条 A 记录对应多条 B 记录,一条 B 记录对应多条 C 记录 2、我要查 A 的信息 但是我还要能根据 C 的信息进行搜索 。

问题来了:怎么实现合理?

1157 次点击
所在节点    问与答
7 条回复
zhuangzhimin
2018-09-30 13:35:47 +08:00
求关爱~
saulshao
2018-09-30 15:00:04 +08:00
首先这不是 2 个表,是 3 个表
实现方法有好些,我觉得最简单明了的办法是用这 3 个表的字段建立起一个视图,这个视图包括你需要查询和显示的所有字段。
然后后端代码就查询这个视图就好。
bsg1992
2018-09-30 15:19:53 +08:00
join
dapang1221
2018-09-30 15:28:37 +08:00
from c left join b left join a ……
dapang1221
2018-09-30 15:31:23 +08:00
看这个表多大了,join 来 join 去的开销也是很大的,看情况弄个新表吧,增删改可以用触发器
picture2200
2018-09-30 15:32:51 +08:00
三个表有主键和外键关联吧。join,子查询都行啊,方法多。
DavidNineRoc
2018-09-30 15:53:31 +08:00
// 得到所有 ids
select `A_id` from `B` where exists
(select * from `C` where `B`.`id` = `C`.`B_id` and /*这里写你的条件*/1 = 1)

// 查询 A 表
select * from `A` where id in /*上方得到的*/ ids

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

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

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

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

© 2021 V2EX