2012-07-01 23 views
2

我有一個networks表和一個groups表,它們通過連接到網絡的每個組鏈接。在MySQL中顯示行爲列

每個組都有一個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表或具有該類型的組數。

我目前拿到兩行:

name 
specialb 

,但其實我是想回回來

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

這裏缺少的標籤是'pivot'。 @Dani,你需要指定你的表的架構和樣例記錄。 –

+0

你可能會覺得這個解決方案很有用。 http://www.artfulsoftware.com/infotree/queries.php#78 –

+0

抱歉不知道關於pivot,但它似乎我實際上不需要數據以列格式顯示,而是可以在行格式。不同的列將只需要關於該行的信息。 – Dani

回答

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使用粘貼特殊>轉置。