统计数据产品消耗量与产量

注意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的更多相关文章

  1. MySQL 通过semi join 优化子查询

    半连接是MySQL 5.6.5引入的,多在子查询exists中使用,对外部row source的每个键值,查找到内部row source匹配的第一个键值后就返回,如果找到就不用再查找内部row sou ...

  2. [HIve - LanguageManual] Join Optimization (不懂)

    Join Optimization Join Optimization Improvements to the Hive Optimizer Star Join Optimization Star S ...

  3. 慢SQL优化:where id in (select max(id)...) 改为join后性能提升400倍

    背景 有两张表,都是主键递增,类似于主表和明细表: statistics_apply:统计申请表,主键applyId,7万多条记录 statistics_apply_progress:统计申请进度表( ...

  4. 关于在left join的on子句中限制左边表的取值时出现非期望的结果

    使用的SQL大概是这样的: select * from A left join B on A.id=B.id and A.id>10; --错误的使用 我们期望的结果集应该是 A中的id> ...

  5. MySql学习(三) —— 子查询(where、from、exists) 及 连接查询(left join、right join、inner join、union join)

    注:该MySql系列博客仅为个人学习笔记. 同样的,使用goods表来练习子查询,表结构如下: 所有数据(cat_id与category.cat_id关联): 类别表: mingoods(连接查询时作 ...

  6. left join 和 left outer join 的区别

    left join 和 left outer join 的区别 通俗的讲:    A   left   join   B   的连接的记录数与A表的记录数同    A   right   join   ...

  7. MySQL实现全关联 full outer join

    SQL LEFT JOIN 关键字 LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行. LEFT JOIN 关键 ...

  8. 实战 EF(LINQ) 如何以子查询的形式来 Join

    如题,大多数网上关于 LINQ Join 的示例都是以 from x in TableA  join ... 这样的形式,这种有好处,也有劣势,就是在比如我们使用的框架如果已经封装了很多方法,比如分页 ...

  9. join算法分析

    对于单条语句,explain看下key,加个索引 多个条件,加复合索引 where a = ? order by b 加(a,b)的复合索引 上面都是比较基本的,这篇我们分析一些复杂的情况--join ...

随机推荐

  1. idea拉出Output窗口和还原窗口

    拉出:按住标题可以拖出 效果: 还原:点击restore layout

  2. Fragment Transactions和Activity状态丢失

    本文由 伯乐在线 - 独孤昊天 翻译.未经许可,禁止转载!英文出处:androiddesignpatterns.欢迎加入翻译组. 下面的堆栈跟踪和异常代码,自从Honeycomb的初始发行版本就一直使 ...

  3. [Luogu] P1865 A % B Problem

    题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r∉[1,m]输出 Cros ...

  4. [BZOJ] 1037 [ZJOI2008]生日聚会

    Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3007 Solved: 1795 [Submit][Status][Discuss] Descript ...

  5. 处理半连接SQL自动改写内连接SQL一例

    昨天刚写了半连接改写系列,今天就遇到了此类型SQL: 优化前 耗时:28s 返回:0 SELECT D.DAILYAUDITNO, D.TRANSTOACC FROM PB_DOIC.MM_DAILY ...

  6. 自动清除日期目录shell脚本

    很多时候备份通常会使用到基于日期来创建文件夹,对于这些日期文件夹下面又有很多子文件夹,对于这些日期文件整个移除,通过find结合rm或者delete显得有些力不从心.本文提供一个简单的小脚本,可以嵌入 ...

  7. UVA 1596 Bug Hunt (大模拟 栈)

    题意: 输入并模拟执行一段程序,输出第一个bug所在的行. 每行程序有两种可能: 数组定义: 格式为arr[size]. 例如a[10]或者b[5],可用下标分别是0-9和0-4.定义之后所有元素均为 ...

  8. python面向对象编程设计与开发

    一.什么是面向对象的程序设计 1.何为数据结构? 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,如列表.字典. 2.何为编程? 编程是指程序员用特定的语法+数据结构+算法,组成的代码,告 ...

  9. 【07】Ajax status和statusText状态对照表

    Ajax status和statusText状态对照表   XMLHttpRequest 对象的 status 和 statusText 属性保存有服务器返回的 http 状态码,不同的是,statu ...

  10. windows下mysql使用实录

    之前密码忘了,卸载重装,配置好环境变量,登录,成功 操作命令可参考http://www.runoob.com/mysql/mysql-tutorial.html 这里只列举了我需要用到的命令 登录:m ...