以下の表をご覧ください。table1
最初のものはもう1つだとしましょうtable2
。これについてどうしたらよいか本当にわかりません。mysqlクエリを使用して以下の表のようにカウントする方法を誰か助けてもらえますか?
タイプ「a」の「赤」の数を数えます
ありがとう
以下の表をご覧ください。table1
最初のものはもう1つだとしましょうtable2
。これについてどうしたらよいか本当にわかりません。mysqlクエリを使用して以下の表のようにカウントする方法を誰か助けてもらえますか?
タイプ「a」の「赤」の数を数えます
ありがとう
他のテーブルには存在しない可能性があるため、LEFT JOIN
むしろ使用する必要があります。INNER JOIN
color
SELECT a.id,
a.colour,
SUM(type = 'a') TypeA,
SUM(type = 'b') TypeB
FROM tableColors a
LEFT JOIN tableName b
ON a.ncolour = b.colour
GROUP BY a.id, a.colour
SUM(type = 'a')
ブール演算の結果の合計値を計算する mysql 固有の構文です。より RDBMS フレンドリーにしたい場合は、CASE
SELECT a.id,
a.colour,
SUM(CASE WHEN type = 'a' THEN 1 ELSE 0 END) TypeA,
SUM(CASE WHEN type = 'b' THEN 1 ELSE 0 END) TypeB
FROM tableColors a
LEFT JOIN tableName b
ON a.ncolour = b.colour
GROUP BY a.id, a.colour
SELECT a.colour ncolor,
SUM(a.type = 'a') amount_a,
SUM(a.type = 'b') amount_b
FROM table_name a
LEFT JOIN table_name b
ON a.colour = b.colour
GROUP BY a.id, a.colour
あなたの画面から、あなたが探しているクエリは単純なSELECT [...], COUNT(a), COUNT(b) FROM table1 GROUP BY colour
.
より正確に:
SELECT colour AS ncolour
, COUNT(a) as amount_a
, COUNT(b) as amount_b
FROM table1
GROUP BY colour ;
Mysql カウント行を参照してください
PS 要求されたのは、table1 から table2 を取得するための MySQL クエリであると想定しました。
select count(red) from table1; のようなことができます。構文についてはよくわかりません。ここでチェックインできます
http://dev.mysql.com/doc/refman/5.0/es/counting-rows.html
http://www.mysqlperformanceblog.com/2007/04/10/count-vs-countcol/