[前][次][番号順一覧][スレッド一覧]

mysql:12321

From: nomoto <nomoto <shin-1@xxxxxxxxxx>>
Date: Sat, 29 Oct 2005 14:20:27 +0900
Subject: [mysql 12321] Re: FW: Re: 複合の集計?

  こんにちは。nomotoです。

>早速両方試してみたのですが、
>何とも動きません。
>MySQLのバージョンは、3.23でした。

3系であればサブクエリが使えませんのでJOINのほうですね。

MySQLで、ただjoinと書くとエラーになるようですね。
inner join に修正したら動くようです。
(データベース毎の方言が頭の中で混乱中;)

また、join条件のAidという項目は、両方のテーブルで同じ
名前なので、on (xxx=xxx)という書き方でなく、簡単に
using (xxx) という書き方もできます。

>$sql  = "select * from テーブル-2 where Aid='$arr[purch_id]' group by g_id";
>とすると、何も出なくなります。
>g_idをKEYにすると、同じ値が複数ある為にだめなのでしょうか?

group by で集約してるなら、* ではなく集約キーとなったg_idと
集約した結果を得るための関数だけを書かないといけませんね。
select g_id, count(*) みたいな感じで。

joinを使った方法で1つのSQLで条件絞込みから集約までできます
ので、以下のような感じで、大丈夫だと思いますよ。

$psql = "select g_id, count(g_id) as cnt from テーブル-2";
$psql .= " inner join テーブル-1 using (Aid)";
$psql .= " where date>='$bkday' and date<='$today'";

$result = $db_query->Db_Query_NVoid($db_name, $conn, $psql);

for($i=0;$i<mysql_num_rows($result); $i++)
{
$arr = mysql_fetch_array($result);
$gid = $arr['g_id'];
$cnt = $arr['cnt'];
}

[前][次][番号順一覧][スレッド一覧]

     12320 2005-10-29 11:54 ["KIYOSE" <kiyose@xxx] FW:  Re: 複合の集計?                   
->   12321 2005-10-29 14:20 ┗[nomoto <shin-1@xxxxx]