如何在一个不同的表中获得多个COUNT(*)查询?

Bob*_*Bob 1 java mysql sql

我一直在尝试将来自不同表的4个或更多COUNT(*)个查询放入一个查询中.

这甚至是可能的,还是我必须进行四种不同的查询?

这是我的代码:

try (final PreparedStatement sel = conn.prepareStatement("SELECT COUNT(*), SUM(coins) FROM User");
            final PreparedStatement sel2 = conn.prepareStatement("SELECT COUNT(*) FROM Friends");
            final PreparedStatement sel3 = conn.prepareStatement("SELECT COUNT(*) FROM Clans");
            final PreparedStatement sel4 = conn.prepareStatement("SELECT COUNT(*) FROM ClanMembers")) {
        try (final ResultSet rs = sel.executeQuery(); final ResultSet rs2 = sel2.executeQuery(); final ResultSet rs3 = sel3.executeQuery()) {
            rs.last();
            rs2.last();
            rs3.last();
            return new Object[] { rs.getInt(1), rs.getInt(2), rs2.getInt(1) / 2, rs3.getInt(1) };
        }
}
Run Code Online (Sandbox Code Playgroud)

Sta*_*avL 6

SELECT COUNT(*), SUM(coins) FROM User
union all
SELECT COUNT(*), 0 FROM Friends
union all
SELECT COUNT(*), 0 FROM Clans
union all
SELECT COUNT(*), 0 FROM ClanMembers
...
Run Code Online (Sandbox Code Playgroud)

对于所有联合查询,列的数量和类型必须相同

更新答案以显示如何组合查询.