2013-12-10 238 views
-1

我在我的頭上破我的手指來解決query必須導致對count days ON每個place idwhere clause agroupments是id from another table。 所以,我有place(Foreign Key FROM places),一天和pk(Foreign Key from another table)。 我想統計place Xpk = y出現ON查詢表的次數?MYSQL GROUP BY和COUNT

表獲取數據():

pk int(11) NO PRI  auto_increment 
pi int(11) NO MUL  
anuncio int(11) NO MUL  
local int(11) NO MUL 
insercoes int(11) YES   
dia datetime YES   
dataUi datetime YES 
valorTabela varchar(45) YES   
sts tinyint(4) YES  1 

,我試圖使查詢:

SELECT 
pa.local AS local, 
COUNT(pa.local), 
lo.valorTabela AS valorTabela 
FROM pi_anuncios pa 
INNER JOIN locais lo ON(pa.local = lo.id) 
WHERE pa.pi = 155 GROUP BY pa.local; 
+0

你可以發佈你的查詢和你的表結構。幫助你會更容易。 –

+0

PK \t INT(11)\t NO \t PRI \t \t AUTO_INCREMENT PI \t INT(11)\t NO \t MUL \t \t anuncio \t INT(11)\t NO \t MUL \t \t 本地\t INT(11)\t NO \t MUL –

回答

0

這一頁有你想要做一個很好的例子:

http://www.w3resource.com/mysql/aggregate-functions-and-grouping/aggregate-functions-and-grouping-count-with-group-by.php

只需修改COUNT(*)來計算的PK F列從你的連接中的其他表中刪除。

這裏是鏈接文章的SQL命令:

SELECT country,COUNT(*) 
FROM author 
GROUP BY country; 
+0

偉大而簡單!很多@ Askanison4! –

+1

您應該在答案本身中添加您認爲解決OP問題的文章的特定部分,以便即使鏈接消失,答案仍然有效。 –

+0

@FilipeSilva完成。好決定。 – Askanison4

0

我明白了:

你需要計算時間X的數量出現在表上有它的PK值等於y,這PK來自其他表格。這裏我已經在WHERE條件下給它。

請讓我知道任何進一步的幫助。

SELECT PLACE, COUNT(*) 
FROM TABLE 
WHERE PK IN (SELECT ID FROM ANOTHER_TABLE WHERE ID = 'Y') 
GROUP BY PLACE 
+0

不是,它不等於y但等於(fk) –