一直使用组合连接查询,师兄偏说要改为子查询的模式,好嘛,改,出现不少问题,记一下。
1.TABLE
子查询作为table的一部分,(ps:个人理解,可能不准确)即把子查询的结果作为一个新表可以和主表连接。这个很好理解,也很简单
直接上关键代码:
subQuery=subQuery=order_detail
->join(“a INNER JOIN {$this->pre}product_price b ON a.price_id=b.price_id”)
->join(“INNER JOIN {$this->pre}sales_products c ON b.sell_id=c.sell_id”)
->join(“INNER JOIN {$this->pre}product_pic d ON b.pid =d.pid”)
->field(“a.order_number,a.item_id,d.s_100_pic,c.product_name,a.standard_model,c.maker_name,c.product_unit,
a.shop_qty,b.product_price”)
->group(“a.order_number”)
->where(map2)−>buildSql();foreach(map2) ->buildSql(); foreach(list as key=>key=>value){
whereorder["ordernumber"]=where_order["order_number"]=list[key][‘ordernumber′];key][‘order_number’]; list[key][‘detail′]=key][‘detail’]=order//可不关联order_list表
->table(subQuery.”detail”)−>where(subQuery.”detail”) ->where(where_order)//SUM(a.shop_qty) as total,可查不好绑
->field(“detail.item_id,detail.s_100_pic,detail.product_name,detail.standard_model,detail.maker_name,
detail.product_unit,detail.shop_qty,detail.product_price”)
->order(‘detail.item_id’)
->select();
2。IN

譬如我写的一个订单list和详情的问题
subQuery=subQuery=order_detail
->join(“a INNER JOIN {$this->pre}product_price b ON a.price_id=b.price_id”)
->join(“INNER JOIN {$this->pre}sales_products c ON b.sell_id=c.sell_id”)
->field(“a.order_id,a.shop_qty”)
->where(map2)−>buildSql();//这也可以用select(flase)无关,看个人喜好上面的map2条件有部分是在详情信息里面的,如商品名称,价格等等,此时用连接查询就不能达到要求啦实现:嵌套着INmap2) ->buildSql();//这也可以用select(flase)无关,看个人喜好 上面的map2条件有部分是在详情信息里面的,如商品名称,价格等等,此时用连接查询就不能达到要求啦 实现:嵌套着IN count=$order
->join(“A INNER JOIN {$this->pre}hy_company B ON A.uid=B.uid”)
->where(map1)−>where(“A.orderidIN“.map1) ->where(“A.order_id IN “.subQuery)
->count();

总结一下:关键是区分这两种方法的差异,一不小心很容易弄错的。

Thinkphp子查询问题总结相关推荐

  1. ThinkPHP 数据库操作(七) : 视图查询、子查询、原生查询

    视图查询 视图查询可以实现不依赖数据库视图的多表查询,并不需要数据库支持视图,例如: Db::view('User','id,name')->view('Profile','truename,p ...

  2. think php 子查询,使用thinkPHP怎么实现一个子查询语句

    使用thinkPHP怎么实现一个子查询语句 发布时间:2021-01-30 13:31:08 来源:亿速云 阅读:85 作者:Leah 这篇文章给大家介绍使用thinkPHP怎么实现一个子查询语句,内 ...

  3. PHP MySQL 子查询(subquery)语法与用法实例

    MySQL 子查询 子查询是将一个 SELECT 语句的查询结果作为中间结果,供另一个 SQL 语句调用.MySQL 支持 SQL 标准要求的所有子查询格式和操作,也扩展了特有的几种特性. 子查询没有 ...

  4. MySQL 学习笔记(16)— 子查询(单行单列、一行多列、多行多列、 ALL、ANY、SOME 运算符、EXISTS 操作符)

    1. 子查询概念 子查询是指嵌套在其他语句(SELECT . INSERT . UPDATE . DELETE 等)中的 SELECT 语句:子查询也称为内查询( inner query )或者嵌套查 ...

  5. MySQL 学习笔记(4)— 组合查询、子查询、插入数据、更新/删除表数据、增加/删除表中的列以及重命名表

    1. 组合查询 1.表的加减法 表的加法,即求 product 和 product2 的并集,UNION 运算会除去重复的记录 SELECT product_id, product_name FROM ...

  6. mysql左加入_MySQL左加入子查询*

    我在JOIN语句中使用子查询组合了一个相当简单的查询.它仅在我在子查询select中包含*时才有效.为什么? 这很有效 $sql = 'SELECT locations.id, title, name ...

  7. Oracle 查询转换之子查询展开

    概念:子查询展开(Subquery Unnesting)是优化器处理带子查询的目标sql的一种优化手段,它是指优化器不再将目标sql中子查询当作一个独立的处理单元来单独执行,而是将该子查询转换为它自身 ...

  8. 浅谈 MySQL 子查询及其优化

    2019独角兽企业重金招聘Python工程师标准>>> 使用过oracle或者其他关系数据库的DBA或者开发人员都有这样的经验,在子查询上都认为数据库已经做过优化,能够很好的选择驱动 ...

  9. SQL Server 2005系列教学(6) 多表操作及子查询

    多表查询:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 人事 ...

最新文章

  1. Aras学习笔记(1)学习Aras已半年有余,也积攒一些学习笔记,今天起会陆续分享出来,有兴趣的朋友一起交流...
  2. 推荐一款高端大气上档次的在线作图工具
  3. 鲁棒性、稳定性、非脆弱性
  4. hashmap扩容 面试_HashMap面试,看完这一篇就够了(上)
  5. java selenium 日志_java - 支持selenium日志_java_酷徒编程知识库
  6. oracle平均活动会话数,Oracle11g r2的活动会话数问题解决
  7. 使用jQuery开发一个基于HTML5的漂亮图片拖拽上传web应用
  8. matlab中怎么设置母线,Matlab绘图教程
  9. 3D打印:FDM打印湿度对打印件及打印机的影响和调整
  10. 各国货币json文件
  11. PreaparedStatement中execut的使用
  12. nginx ngx_event_t结构体详解
  13. svn resolved filename or directory that gives trouble
  14. 计算机进去pe怎么设置用户,电脑如何进入winpe模式?进入winpe模式的方法
  15. Ubuntu无法重启:教你用u盘系统修复ubuntu
  16. 带宽、动态范围、db等解释
  17. 正则表达式前瞻(?=)、后顾(?<=)、负前瞻(?!)、负后顾(?<!)
  18. 母婴商城网站的可行性分析报告
  19. cps配置之折淘客篇
  20. 【原创】ARM LINUX 外部RTC实时时钟驱动移植(RX8025)

热门文章

  1. matlab代码仿真qpsk星座图,信号调制与解调,用脚本文件代码不是simulink
  2. 迁移学习+TfLite Android构建自己的喵咪识别APP(一)
  3. 仿真软件有哪些测试,仿真测试对比软件***排名
  4. 黄永玉谈音乐与人生:我曾是张艺谋“伯乐”
  5. 学习游戏原画必看的13个知识点「收藏起来慢慢看!」
  6. 基于Multisim音响放大器设计与仿真-设计资料
  7. 传奇gm命令怎么用_全新强大的传奇GM后台命令脚本
  8. 维多利亚的秘密微信推广广告模仿-刮刮卡
  9. 睿智的目标检测33——Keras搭建Efficientdet目标检测平台
  10. b关于bootstrap官网https://v4.bootcss.com/docs/layout/grid/关于栅格布局的学习和实践博客