目前业务设计到了一个筛选,以下有两个表: 
表 A  订单表 
表 B  客户表 
同时订单表储存了客户的 ID (只有 ID,没有冗余其他字段) 
要求: 
不使用 JOIN 关键词的情况下,找出某一组符合客户筛选要求的订单,比如找等级为 VIP 的客户,同时还要分页 
有没有做过类似的大牛给个思路
|      1vemier      2021-03-18 15:34:23 +08:00 要不加冗余字段,要不 join 。这个 join 关系应该不是很复杂吧。 | 
|  |      2psnail      2021-03-18 15:36:44 +08:00  1 select count(*) from A where date>today()-30  and ID in ( select ID from B where level='VIP' ) limit start,limit 用 in 条件查询呢 | 
|      3MrTangKe      2021-03-18 15:41:54 +08:00 UNION ALL 可以么 | 
|  |      4altchen      2021-03-18 15:50:16 +08:00  1 只是不能出现 join 字符? select a.* from order a , user b where a.user_id = b.id and b.vip_type=11 limit start,limit | 
|  |      7lichao      2021-03-18 15:54:01 +08:00 有人说冗余,冗余也有弊端,客户的等级不会一直不变,如果变了,冗余的字段没跟着变,查询出来的数据就是错的 | 
|  |      8AngryPanda      2021-03-18 15:55:26 +08:00 子查询咯 | 
|  |      9lichao      2021-03-18 15:59:27 +08:00 说不让用 join,一般是说并发非常高的 C 端不让用,楼主的需求看上去是 B 端,该 join 还是得 join,退一步讲同步一个从库出来也是 OK 的 | 
|  |      10altchen      2021-03-18 16:04:43 +08:00 看应用场景,如果确实数据量很大,不能 join, 同时又需要各种复杂的关联及多条件查询,那楼主就往全文检索上靠吧 | 
|      11DebugTy      2021-03-18 16:38:06 +08:00  1 有一种方式可以; 使用宽表聚合多个字表信息,最终针对这种 case 可以查询宽表 | 
|      12Chenamy2017      2021-03-18 16:48:16 +08:00 子查询和宽表聚合查询那个快? | 
|  |      13wolfie      2021-03-18 16:54:35 +08:00 EXISTS | 
|  |      14pan020037      2021-03-18 17:10:41 +08:00  1 单独根据用户的筛选条件查出对应的用户 id 查订单表时直接 where_in 用户 id 就完事了 如果列表需要显示用户信息 那就把订单数据里的 mid 聚合,去 where_in 用户表 使用用户 id 做键,去映射订单列表的用户 id | 
|  |      16MIUIOS OP 够调皮哈哈哈哈 | 
|  |      17xuanbg      2021-03-18 21:46:04 +08:00 不 join 用个毛线 mysql,mongodb 不香吗? | 
|  |      18dd112389      2021-04-03 16:24:40 +08:00 临时表、视图、子查询. (用 ORM 去查两次 /doge). |