来自多个表的MySQL请求计数

来自多个表的MySQL请求计数,mysql,count,request,Mysql,Count,Request,我有桌子,桌子一,桌子二,桌子三,桌子四,所有的结构都差不多。 它有id、name、status和user\u id列 i、 g.除了表4之外,我在每个表中都多次使用了用户id为345的用户John。某些条目的状态为1,而其他条目的状态为0 现在,我需要通过一个查询来计算每个表中该用户的状态为1的次数 因此,我: SELECT table_one.user_id, SUM(CASE WHEN table_one.status = 1 THEN 1 ELSE 0 END) AS count_

我有桌子,桌子一,桌子二,桌子三,桌子四,所有的结构都差不多。 它有id、name、status和user\u id列

i、 g.除了表4之外,我在每个表中都多次使用了用户id为345的用户John。某些条目的状态为1,而其他条目的状态为0

现在,我需要通过一个查询来计算每个表中该用户的状态为1的次数

因此,我:

SELECT table_one.user_id,
   SUM(CASE WHEN table_one.status = 1 THEN 1 ELSE 0 END) AS count_tblone
   SUM(CASE WHEN table_two.status = 1 THEN 1 ELSE 0 END) AS count_tbltwo
   SUM(CASE WHEN table_three.status = 1 THEN 1 ELSE 0 END) AS count_tblthree
   SUM(CASE WHEN table_four.status = 1 THEN 1 ELSE 0 END) AS count_tblfour
FROM table_one
   LEFT JOIN table_one   ON table_one.user_id   = table_one.user_id
   LEFT JOIN table_two   ON table_two.user_id   = table_one.user_id
   LEFT JOIN table_three ON table_three.user_id = table_one.user_id
   LEFT JOIN table_four  ON table_four.user_id  = table_one.user_id

WHERE tbl_one.user_id = 345
问题是请求在应该是2、1、1、0时输出4、0、0


如果我在table_one.status=1时离开SUMCASE,那么1 ELSE 0结束为count_tblone-count_tblone将等于4,即使在table_one-status字段中,用户345的两条记录中只有1条等于1。

输入要多得多,但我建议使用UNION,特别是当用户可能不在table_one中时

。。。表3和表4

) AS tblMyUnionedTables

什么不起作用?另外:您的意思是在左侧联接中使用=tbl_resume.candidate_id吗?每个表都是通过自己的键联接到自己的,这是没有意义的。我的想法是你从一号桌到二号桌,二号桌到三号桌,三号桌到四号桌。如果我是,请纠正我wrong@JohnA请将您的修复作为一个答案,以防其他人出现同样的问题:好吧,好吧,我修复了它。。。对不起,伙计们。现在有人能回答吗?你还在寻找这个问题的更多答案吗?或者您是否以另一种方式解决了问题,可以与社区共享?此外,如果可以将结果检索为4个单列行,而不是1个四列行,那么您可以将0作为计数\u tbl。。。您可以从上面答案中的子表中获得结果。请注意,在这种情况下,您将需要UNION ALL来代替UNION。同样在这种情况下,您可以在where子句中添加status=1,然后只获取计数。
) AS tblMyUnionedTables