JOIN a table with a subquery
统计数据产品消耗量与产量
注意join 方向
join中子查询
How to use subquery in JOIN operation in MySQL http://www.geeksengine.com/database/subquery/subquery-in-join-operation.php
SELECT * FROM (
SELECT COUNT(DISTINCT(tab_p_id)) AS num_used,uid FROM tab_used GROUP BY uid
) AS u LEFT JOIN (
SELECT COUNT(1) AS num_produced,uid FROM tab_produced WHERE status=0 GROUP BY uid )
AS p ON u.uid=p.uid
num_used uid num_produced uid1
7 34000818 7 34000818
5 34021448 5 34021448
4 34032175 4 34032175
2 34053736
1 34056643 1 34056643
3 34058625 1 34058625
1 34058871 6 34058871
1 34061376 2 34061376
2 34061642 2 34061642
2 34061911 2 34061911
1 34062103 21 34062103
1 34062125 23 34062125
5 50001361 5 50001361
1 50001496 3 50001496
1 50001902
3 50001937 3 50001937
2 50003549 4 50003549
3 50003739
1 50003912 5 50003912
3 50004712 3 50004712
6 50005136 3 50005136
1 50006475 1 50006475
1 50007058 1 50007058
2 50007241 10 50007241
1 50007396 13 50007396
2 50007436 5 50007436
2 50007453 4 50007453
3 50007469 2 50007469
11 50007565 11 50007565
1 50008000 10 50008000
3 50008751
8 50008905 8 50008905
1 50008952 10 50008952
9 50010160 10 50010160
4 50010671 5 50010671
1 50010844 7 50010844
SELECT p.uid FROM (
SELECT COUNT(DISTINCT(myproduct_id)) AS num_used,uid FROM myproduct_publish GROUP BY uid
) AS v
LEFT JOIN (
SELECT COUNT(1) AS num_produced,uid FROM myproduct WHERE status=0 GROUP BY uid
)
AS p ON v.uid=p.uid WHERE num_used>=num_produced
JOIN a table with a subquery的更多相关文章
- MySQL 通过semi join 优化子查询
半连接是MySQL 5.6.5引入的,多在子查询exists中使用,对外部row source的每个键值,查找到内部row source匹配的第一个键值后就返回,如果找到就不用再查找内部row sou ...
- [HIve - LanguageManual] Join Optimization (不懂)
Join Optimization Join Optimization Improvements to the Hive Optimizer Star Join Optimization Star S ...
- 慢SQL优化:where id in (select max(id)...) 改为join后性能提升400倍
背景 有两张表,都是主键递增,类似于主表和明细表: statistics_apply:统计申请表,主键applyId,7万多条记录 statistics_apply_progress:统计申请进度表( ...
- 关于在left join的on子句中限制左边表的取值时出现非期望的结果
使用的SQL大概是这样的: select * from A left join B on A.id=B.id and A.id>10; --错误的使用 我们期望的结果集应该是 A中的id> ...
- MySql学习(三) —— 子查询(where、from、exists) 及 连接查询(left join、right join、inner join、union join)
注:该MySql系列博客仅为个人学习笔记. 同样的,使用goods表来练习子查询,表结构如下: 所有数据(cat_id与category.cat_id关联): 类别表: mingoods(连接查询时作 ...
- left join 和 left outer join 的区别
left join 和 left outer join 的区别 通俗的讲: A left join B 的连接的记录数与A表的记录数同 A right join ...
- MySQL实现全关联 full outer join
SQL LEFT JOIN 关键字 LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行. LEFT JOIN 关键 ...
- 实战 EF(LINQ) 如何以子查询的形式来 Join
如题,大多数网上关于 LINQ Join 的示例都是以 from x in TableA join ... 这样的形式,这种有好处,也有劣势,就是在比如我们使用的框架如果已经封装了很多方法,比如分页 ...
- join算法分析
对于单条语句,explain看下key,加个索引 多个条件,加复合索引 where a = ? order by b 加(a,b)的复合索引 上面都是比较基本的,这篇我们分析一些复杂的情况--join ...
随机推荐
- idea拉出Output窗口和还原窗口
拉出:按住标题可以拖出 效果: 还原:点击restore layout
- Fragment Transactions和Activity状态丢失
本文由 伯乐在线 - 独孤昊天 翻译.未经许可,禁止转载!英文出处:androiddesignpatterns.欢迎加入翻译组. 下面的堆栈跟踪和异常代码,自从Honeycomb的初始发行版本就一直使 ...
- [Luogu] P1865 A % B Problem
题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r∉[1,m]输出 Cros ...
- [BZOJ] 1037 [ZJOI2008]生日聚会
Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3007 Solved: 1795 [Submit][Status][Discuss] Descript ...
- 处理半连接SQL自动改写内连接SQL一例
昨天刚写了半连接改写系列,今天就遇到了此类型SQL: 优化前 耗时:28s 返回:0 SELECT D.DAILYAUDITNO, D.TRANSTOACC FROM PB_DOIC.MM_DAILY ...
- 自动清除日期目录shell脚本
很多时候备份通常会使用到基于日期来创建文件夹,对于这些日期文件夹下面又有很多子文件夹,对于这些日期文件整个移除,通过find结合rm或者delete显得有些力不从心.本文提供一个简单的小脚本,可以嵌入 ...
- UVA 1596 Bug Hunt (大模拟 栈)
题意: 输入并模拟执行一段程序,输出第一个bug所在的行. 每行程序有两种可能: 数组定义: 格式为arr[size]. 例如a[10]或者b[5],可用下标分别是0-9和0-4.定义之后所有元素均为 ...
- python面向对象编程设计与开发
一.什么是面向对象的程序设计 1.何为数据结构? 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,如列表.字典. 2.何为编程? 编程是指程序员用特定的语法+数据结构+算法,组成的代码,告 ...
- 【07】Ajax status和statusText状态对照表
Ajax status和statusText状态对照表 XMLHttpRequest 对象的 status 和 statusText 属性保存有服务器返回的 http 状态码,不同的是,statu ...
- windows下mysql使用实录
之前密码忘了,卸载重装,配置好环境变量,登录,成功 操作命令可参考http://www.runoob.com/mysql/mysql-tutorial.html 这里只列举了我需要用到的命令 登录:m ...