Mysql - 多个连接表的总计数

标签 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
LEFT JOIN table_2 tb2 ON tb2.member_id = m.member_id
WHERE m.member_id = 27

其中 27 是我正在使用的测试帐户的 member_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

关于Mysql - 多个连接表的总计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8231409/

相关文章:

PHP MySQL 检查组合并显示特定值

php - 如何从php中删除json数据的while循环中的最后一个逗号

javascript - 表单不将数据保存到 mySQL 表中

php - 如何根据数据库外部计算的值对MySQL数据进行排序

SQL 查询,我从另一个表的时间戳中获取最新的行

sql - 我在 SQL 命令中遇到错误未正确结束

sql - 查询驱动 View 和实际 View 不返回相同的结果

java - 提取 DBPedia Dump 期间 DBPedia 提取框架失败

c# - 使用参数化查询发送空值

php - 如何从我的上传路径文件夹的数据库中获取我的图像?