我正在彻底解决(似乎很相似)简单的解决方案,但无法让它发挥作用。
我需要3个不同的表来获取信息。它们可以与id列相关联。我想做的是:
检查id在table1中出现的次数和SUM()对应的table1.data字段的所有值为sum1
检查id出现在table2中的次数和SUM()对应的table2.data字段的所有值为sum2
检查id出现在table3中的次数和SUM()对应的table3.data字段的所有值为sum3
我可以使用3个不同的查询来解决这个问题但是真的很想拥有一个MySQL查询来返回结果。
答案 0 :(得分:2)
好吧,我认为一个查询的想法绝对是可能的。尝试这样的事情:
select c1.id
, sum(c1.val) as sum1, count(distinct(c1.id)) as cnt1
, sum(c2.val) as sum2, count(distinct(c2.id)) as cnt2
, sum(c3.val) as sum3, count(distinct(c3.id)) as cnt3
from c1, c2, c3
where c1.id = c2.id
and c2.id = c3.id
group by id
如果您的数据未在所有表格中完全填充,则可能需要外部联接。
答案 1 :(得分:1)
盖伊是对的,你想要实现的目标一个查询真的不可能。您需要查看在不同ID上使用count函数,例如
SELECT COUNT(DISTINCT t1。[ID])FROM t1 SELECT COUNT(DISTINCT t2。[ID])FROM t2 SELECT COUNT(DISTINCT t3。[ID])FROM t3
等
答案 2 :(得分:0)
将所有这些查询合二为一,没有任何意义: