[PHP-users 5323] Re: MySQL でのデータの検索結果
森 直也
php-users@php.gr.jp
Sat, 09 Feb 2002 18:57:07 +0900
>
> テーブル名:TEST
> +−−−−−−−+−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−+
> |ID |NAME |URL |
> +−−−−−−−+−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−+
> |000001 |あいうえお |http://www.xxx.com/a|
> |000002 |あいうえお |http://www.xxx.com/b|
> |000003 |かきくけこ |http://www.xxx.com/c|
> |000004 |さしすせそ |http://www.xxx.com/d|
> |000005 |たちつてと |http://www.xxx.com/e|
> |000005 |さしすせそ |http://www.xxx.com/f|
> +−−−−−−−+−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−+
>
> からNAMEで重複するものを一つにして以下のように抽出したいのです。
> +−−−−−−−+−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−+
> |ID |NAME |URL |
> +−−−−−−−+−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−+
> |000001 |あいうえお |http://www.xxx.com/a|
> |000003 |かきくけこ |http://www.xxx.com/c|
> |000004 |さしすせそ |http://www.xxx.com/d|
> |000005 |たちつてと |http://www.xxx.com/e|
> +−−−−−−−+−−−−−−−−−−−−+−−−−−−−−−−−−−−−−−+
上記データでは、
Distinct でも Group by でも決して集約されて
抽出されることはありません。
IDとURLに集約できないデータがあるからです。
NAMEだけの条件で抽出対象を集約することは出来ません。
つまり、
--------------------------------------------------
SELECT name
FROM test
GROUP BY name;
これで name が集約されて出ます。
--------------------------------------------------
SELECT DISTINCT id,name,url
FROM test;
これはid,name,urlの行単位で同じであれば集約されます。
--------------------------------------------------
SELECT id,name,url
FORM test
GROUP BY id,nam,url;
これはDistinctと同じ要求になります。
--------------------------------------------------
SELECT id,name,url
FROM test
GROUP BY name
これはSQLとして成り立ちません。
--------------------------------------------------
以上、私の見解です。
--
森 直也 <Naoya_Mori@ni.smm.co.jp>