Mysql-多个联接表的求和计数
我会尽力解释清楚。我试图完成两件事,但我甚至在第一件事上都有困难 我有一个模式,它有一个成员表,其中有多个表的外键。最后,我将从大约10个表中提取,这些表可能有,也可能没有特定成员的记录。我正试图得到所有计数的总和。我的查询如下所示:Mysql-多个联接表的求和计数,mysql,sql,Mysql,Sql,我会尽力解释清楚。我试图完成两件事,但我甚至在第一件事上都有困难 我有一个模式,它有一个成员表,其中有多个表的外键。最后,我将从大约10个表中提取,这些表可能有,也可能没有特定成员的记录。我正试图得到所有计数的总和。我的查询如下所示: SELECT (COUNT(tb1.member_id) + COUNT(tb2.member_id)) as total FROM members m LEFT JOIN table_1 tb1 ON tb1.member_id = m.member_id LE
SELECT (COUNT(tb1.member_id) + COUNT(tb2.member_id)) as total
FROM members m
LEFT JOIN table_1 tb1 ON tb1.member_id = m.member_id
LEFT JOIN table_2 tb2 ON tb2.member_id = m.member_id
WHERE m.member_id = 27
其中27是我正在使用的测试帐户的成员id。这并没有产生准确的结果,我相信这是因为左连接,它似乎是扔东西了,我得到了8,即使每种记录只有两个。如果消除一个左连接,则得到预期结果
谁能告诉我该怎么做
这是我的问题之一。第二个问题是,在某些情况下,我希望每个结果都计算为1或0,即使有2或3条相应的记录。我一直在寻找类似于将结果作为bool的东西,但没有找到任何东西。有人能提出一个方法吗
非常感谢您的阅读,如有任何建议,将不胜感激。这可能是因为我以错误的方式处理这个问题,再次感谢您的建议。尽管我不熟悉mysql的最新技术,但我确信类似的方法会奏效:
SELECT
(select COUNT(*) from table_1 = where member_id = m.member_id)
+
(select COUNT(*) from table_2 = where member_id = m.member_id)
as total
FROM members m
WHERE m.member_id = 27
关于问题的第二部分,您可以在SELECT子句中直接使用条件句[这样您可以检查count>0非常感谢,这正是我要找的。对于我要进行的bool类型SELECT,我最后做了:很高兴提供帮助。对于将来的参考,这种查询称为“相关子查询”.btw.请将问题设置为已回答,谢谢