0

すべてのテーブル データと総レコード数を取得する 1 つの mysql クエリを作成したいと考えています。

たとえば。これは私のテーブルです

ID     Name    typeId
1      test1   1
2      test2   1
3      test3   2

タイプ ID 1 のデータをフェッチする場合、次のような結果が必要です

Name    count 
test1   2
test2   2

この種の結果に対してどのようにSQLを書くことができますか。サブクエリは必要ありません。サブクエリなしでデータを取得したいのですが、助けてください。

ありがとう

4

5 に答える 5

3

あなたの望む結果を見ると、これは奇妙な要件ですName。そのためにサブクエリを使用できます。

SELECT `Name`, (SELECT COUNT(*) FROM myTable) as `COUNT`
FROM myTable

または、それぞれのカウントが必要な場合は、Nameこれを試してください:

SELECT `Name`, COUNT(*) AS `COUNT` 
FROM myTable 
GROUP BY `Name`;

編集:

質問を更新すると、クエリは次のようになります。

SELECT `Name`,
(SELECT COUNT(*) FROM myTable WHERE TypeId = 1 GROUP BY TypeId) as `COUNT`
FROM myTable WHERE TypeId = 1;

このSQLFiddleを参照してください

于 2012-10-03T07:02:36.970 に答える
2

代わりにCROSS JOINここで使用することです

SELECT name, c.totalCount   
FROM Table1, (SELECT COUNT(*) totalCount FROM Table1) c

SQLFiddle デモ

于 2012-10-03T07:06:43.043 に答える
1
select name,count(*) as count from tablename where typeid=1 group by name
于 2012-10-03T06:59:01.650 に答える
0
SELECT name, count(*) AS count FROM <TABLE NAME> GROUP BY name;
于 2012-10-03T06:58:51.043 に答える
0
SELECT t.*, count(\*) AS count FROM myTableName as t GROUP BY t.Name;
于 2012-10-03T09:10:09.403 に答える