2012-10-05 97 views
0

我想根據兩個MySQL表運行相當簡單的計數,但我無法獲得正確的語法。MySQL COUNT如果在多個表之間

  Table_1        Table_2 
Actor | Behavior | Receiver |  | Behavior | Type_of_behavior | 
Eric  a  ann    a   Good 
Eric  b  ann    b   Bad 
Bob   a  Susan    a   Good 
Bob   c  Bob    c   shy 

我通過table_2.Type_of_behavior WHERE Table_1.Behavior = Table_2 Behaviorgroup by Table_1.ActorCOUNT Table 1.Behavior。我試過的語法如下。
我意識到我可以加入表格,但由於其他原因,我需要將它們分開。

SELECT actor, JOIN Table_1, Table_2 
COUNT(IF(Table_2.Type_of_behavior = "good", 1,0)) 
AS 'good' FROM Table_1.Behavior GROUP BY actor; 
+0

我什至不知道這是有可能不加入或做某種形式的聯盟。加入會讓你的生活變得更容易。但是可以通過兩種選擇語句的某種聯合來完成。 – Perley

回答

0

我不完全確定,如果這是你想要的,但這裏的東西,你應該至少可以修改。

SELECT actor, COUNT(Type_of_behavior) 
FROM table_1 JOIN table_2 
ON table_1.behavior=table_2.behavior 
WHERE Type_of_behavior = 'good' 
GROUP BY actor 
0
SELECT actor, 
     sum(t2.Type_of_behavior = 'good') AS good 
from Table_1 t1 
join Table_2 t2 on t1.behaviour = t2.behaviour 
GROUP BY actor; 
+0

太棒了!謝謝 – user1723683