如何从MySQL中的多个表中 Select COUNT(*)?

例如:

SELECT COUNT(*) AS table1Count FROM table1 WHERE someCondition
JOIN?? 
SELECT COUNT(*) AS table2Count FROM table2 WHERE someCondition
CROSS JOIN? subqueries?
SELECT COUNT(*) AS table3Count FROM table3 WHERE someCondition

Edit:

我们的目标是回报:

+-------------+-------------+-------------+
| table1Count | table2Count | table3Count |
+-------------+-------------+-------------+
| 14          | 27          | 0           |
+-------------+-------------+-------------+

推荐答案

可以通过使用子查询来实现,每个tableCount对应一个子查询:

SELECT
  (SELECT COUNT(*) FROM table1 WHERE someCondition) as table1Count, 
  (SELECT COUNT(*) FROM table2 WHERE someCondition) as table2Count,
  (SELECT COUNT(*) FROM table3 WHERE someCondition) as table3Count

Mysql相关问答推荐

SQL查询仅插入5行

带负数的MySQL子字符串_索引

约会时的意外行为

计算男生的人数和女生的人数.学生是有入学记录的人

为什么MySQL派生条件下推优化不起作用

条件触发mysql

创建 mySQL BEFORE/AFTER UPDATE 触发器

Next-key lock explication - 范围的主键

Mysql,显示谁已经和没有 Select 退出巴士服务

按 SQL 删除分组前的重复项

此插页中的X是什么> X'3C2F756C3E'

如何在sql中挑出某些名称

自动登录 phpMyAdmin

在 MySQL 中,我应该 Select 哪种排序规则?

MySQL INSERT IF(自定义 if 语句)

MySQL 更新连接表

int(11) 和 int(11) UNSIGNED 有什么区别?

MySQL - 重复表

MySQL合并两列并添加到一个新列中

如何从邮箱地址中 Select 域名