私は異なるテーブルから4つ以上のCOUNT(*)クエリを取得しようとしていましたのクエリに。1つのテーブルで複数のCOUNT(*)クエリを取得するにはどうすればよいですか?
これも可能ですか、または4つの異なるクエリを作成する必要がありますか?
これは私のコードです:列の
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) };
}
}
UNION ALLを、またはサブクエリを登録しよう。 – jarlh
'UNION ALL'を使うのは私にとっては最も簡単な解決策ですが、2列のクエリが1つしかないので、これはうまくいきません。サブクエリを使用することが1つの解決策です。 FYI:パラメータを渡さないと 'Statement'を使うことができます。 – AxelH