mysql - 多个联接,其中之一包含条件

标签 mysql join

感谢您的回答。

使用mysql 5.6,我有2个表。

基金

  • 代码
  • 姓名
  • 等等

政策

  • 代码
  • 值(value)
  • DOD(死亡日期)
  • 等等

我正在尝试获取输出

  • 姓名
  • 该代码的值总和
  • 该代码的值计数
  • dod 为 null 的代码的值总和
  • dod 为 null 的代码的值计数

这是不太有效的 SQL:

Select fund.code, value, ActValue, count, actcount
from fund
join(select code, sum(value)as value, count(code) as count from policy group by code) policy
join(select code, sum(value)as ActValue, count(code) as Actcount from policy where DOD is null group by code ) active
on fund.code = policy.code and fund.code = active.code

这给了我一个空结果。如果我在第二个连接中删除 where...,我会得到数据,但当然它只是重复保单总数。如何仅向第二个连接添加条件?

谢谢, 迈克。

编辑:谢谢 - 即使你们都正确,但不能同时调用两个答案。它现在在我的测试环境中工作,所以我认为它会在现场工作。

最佳答案

Select fund.code, value, ActValue, count, actcount
    from fund 
    left join (select code, sum(value)as value, count(code) as count from policy group by code) policy on fund.code=policy.code
    left join (select code, sum(value)as ActValue, count(code) as Actcount from policy where DOD is null group by code )on fund.code=active.code  

关于mysql - 多个联接,其中之一包含条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20531940/

相关文章:

mysql - 更新多个表中的公共(public)字段

mysql - sql 3表联合

mysql - 如何编写SQL来返回连接数据出现的次数?

mysql - 在同一个 JOIN 中选择同一个表中的多行

mysql - LEFT JOIN 不返回左侧表中的所有记录

mysql - 在sequelize中创建具有循环依赖的表,

mysql - 我可以加快这个 mysql 查询吗?

php - PHP 代码中的解析错误意外 T_CASE

php - 为什么不在此代码中插入多个数据

mysql - 需要加入查询帮助