2

networksテーブルとテーブルがgroupsあり、それらはネットワークに接続されている各グループによってリンクされています。

各グループには がtypeあり、これらのグループのいくつかはspecial typeグループです。

そのグループ タイプに含まれる人数を示す列として表示される特別なタイプの各グループを表示するクエリを実行しようとしています。

それは可能なことですか?各グループ タイプを列ヘッダーとして表示します。

データ:

Networks

id | name
1  | networka
2  | networkb


groups

id | name   | type | network
1  | groupa | 1    | 1
2  | groupb | 2    | 2
3  | groupc | 3    | 1

type

id | name     | special
1  | speciala | 0
2  | specialb | 1

私は現在実行しています:

SELECT Name FROM (

    SELECT groups.Name FROM groups INNER JOIN group_types on groups.Type = group_types.Id WHERE group_types.SpecialType = 1 Group by groups.Type
) as s

特別なタイプのグループのリストを返します。しかし、そのグループのメンバー数などの詳細情報を取得したい場合は、group_membersテーブルにリンクするテーブルがあると仮定しgroupsたり、そのタイプのグループの数を調べたりします。

私は現在、2つの行を取得しています:

name
specialb

でも本当は帰りたい

specialb
(sub query to get more values for that special group)
4

1 に答える 1

0

あなたが何を望んでいるかを正しく理解している場合は、次のように書いてください。

select g.name, t.name, count(*)
from groups as g left join group_members as gm on gm.group=g.id left join types as t on t.id=g.type
group by g.name, t.name

次に、[特殊貼り付け] > [転置] を使用してコピーして Excel に貼り付けます。

于 2012-11-08T02:07:22.850 に答える