1、有两个表 A 表 和 B 表 C 表。 A-B,B-C,都是 1-N 的关系 , 一条 A 记录对应多条 B 记录,一条 B 记录对应多条 C 记录 2、我要查 A 的信息 但是我还要能根据 C 的信息进行搜索 。
问题来了:怎么实现合理?
1
zhuangzhimin OP 求关爱~
|
2
saulshao 2018-09-30 15:00:04 +08:00
首先这不是 2 个表,是 3 个表
实现方法有好些,我觉得最简单明了的办法是用这 3 个表的字段建立起一个视图,这个视图包括你需要查询和显示的所有字段。 然后后端代码就查询这个视图就好。 |
3
bsg1992 2018-09-30 15:19:53 +08:00
join
|
4
dapang1221 2018-09-30 15:28:37 +08:00
from c left join b left join a ……
|
5
dapang1221 2018-09-30 15:31:23 +08:00
看这个表多大了,join 来 join 去的开销也是很大的,看情况弄个新表吧,增删改可以用触发器
|
6
picture2200 2018-09-30 15:32:51 +08:00 via Android
三个表有主键和外键关联吧。join,子查询都行啊,方法多。
|
7
DavidNineRoc 2018-09-30 15:53:31 +08:00 1
// 得到所有 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 |