2012-01-13 10 views
3

このデータベースの中にaccountsaccountという名前のデータベースがあります。また、このデータベースの中にplayersplayerという名前のデータベースがあります。1つのクエリで2つの異なるテーブル(およびデータベース)の行数を取得するにはどうすればよいですか?

1つのクエリでこの2つのテーブルの行数を取得するにはどうすればよいですか?

SELECT 
    SUM(`account`.`account`.`id`) AS 'accounts', 
    SUM(`player`.`player`) AS 'players'; 

をしかし、それは動作しません:

私はこれを試してみました。

答えて

2

あなたが正確に必要なこのような何かを行うよりも、行は、(SUMない)数える場合:

select 
(select count(*) from accounts.account) as count1, 
(select count(*) from players.player) as count2 

またはこのメッセージの取得

select count(*) as `count`,"account" as `table` from accounts.account 
union all 
select count(*) as `count`,"player" as `table` from players.player 
1

試してみてください。2つの選択書類に簡単なUNION操作を行います

SELECT 
    COUNT(`account`.`id`) AS 'accounts', 
    COUNT(`player`.`player`) AS 'players' 
FROM 
    `account`, 
    `player` 
+0

: 'SQLSTATEを[3D000] :無効なカタログ名:1046データベースが選択されていません。 – Cyclone

2

SELECT COUNT(*), 'Accounts' FROM Accounts.Account 
UNION 
SELECT COUNT(*), 'Players' FROM Players.Player 

そして、あなたは、彼らが別々のデータベースにしているので、データベース名と、各テーブルを修飾する必要があります。

1
SELECT COUNT(*) 
FROM (
    SELECT Id 
    FROM accounts.account 
    UNION ALL 
    SELECT player 
    FROM players.player) AS BothTables 
0
with Value (nbr, name) as 
(
select count(*) amount, 'AccountsCount' as ab from accounts..account 
union all 
select count(*) amount, 'PlayersCount' as ab from players..player 
) 
select * 
from value as s 
PIVOT(sum(nbr) for name in (AccountsCount, PlayersCount)) as pvt 
+0

このコードがどのように問題を解決するか説明してください。これにより、OPは将来の調査者だけでなく、あなたの答えから学ぶのに役立ちます。 – SnareChops

関連する問題