2014-02-06 104 views
1

我需要sql幫助。我有一個終端列和table2中的一列相匹配。 (指數)我想在表「終端」,以顯示每個索引的終端的數目,並用表2合併它在輸出中包括的索引名sql統計1個表並將表2中的信息合併到結果中

select index,terminal=count(*) from terminal 
group by index 

返回

index  terminal 
--------- ----------- 
1   94 
2   15 

在表2予有一個與表'terminal'中的索引相匹配的索引,它也具有與該索引相對應的名稱。

實施例:

select * from table2 

返回:

index name   lcmid  handle  
------ ------  --------  -------- 
1  nameofindex1 8   10 
2  nameofindex2 12   27 

我要計數對應於所述索引表1的終端的數量,然後將它們合併到包括「nameofindexes」,lcmid和處理結果。我很抱歉聽起來像一個新手,但我正在學習。

任何幫助,非常感謝。

回答

0

那麼,你需要加入。也許:

SELECT t1.index, c=count(*), t2.name FROM terminal AS t1 
    INNER JOIN table2 AS t2 ON t1.index = t2.index 
    GROUP BY t1.index; 

我有點生疏,所以該查詢可能不完全正確,但連接是你需要去的方向。

編輯

正如評論所指出的,對MySQL的作品,而不是SQL的OP的味道。在SELECT和GROUP BY子句中將t1.index更改爲t2.index:

SELECT t2.index, c=count(*), t2.name FROM terminal AS t1 
    INNER JOIN table2 AS t2 ON t1.index = t2.index 
    GROUP BY t2.index; 
+0

這不起作用,它返回錯誤的數據。我得到c返回346(這是終端的正確計數),但它顯示了輸出中返回的所有行的346。 – user3281308

+0

是的,我說我生鏽了;)...我忘了你的GROUP BY子句。我編輯了答案,並在其中添加了該答案。如果其他所有內容看起來都正確,那麼我認爲這會對您有用。 – willkil

+0

這樣比較好,但它仍在重複報告計數。換句話說,大約有30個唯一索引對應於一個名稱,並且每個索引上有X個終端。它會正確返回分配給每個索引的正確終端數量,但會重複與唯一索引關聯的所有30個名稱。示例:索引1有94個終端,所有30個名稱都在輸出的列中。 30 x(1),30 x(94)和每個 旁邊的唯一名稱'1 | 94 | name1' '1 | 94 | name2' '1 | 94 | name3' '1 | 94 | namen' '2 | 33 | name1' '2 | 33 | name2' – user3281308

相關問題