2014-09-25 43 views
1

我有兩個MySQL表,我想選擇那些從另一個表中計數大於2的ID。Mysql - 從另一個表中選擇,操作數應該包含1列錯誤

這裏是我的查詢:

SELECT * FROM `firsttable` where from_user_id in (SELECT target,count(*) as c FROM `second table`where type='follower' group by target having c>2) 

但我跑入操作應包含1列(或多個)錯誤(也查詢似乎採取年齡每當我從XY選擇其中z中(選擇...)查詢)。

+1

上'IN'操作數右側的子查詢應返回只有一列。你可以使用:'HAVING count(*)> 2',而不是把它放在'SELECT'子句中。 – bernie 2014-09-25 16:10:17

+1

關於緩慢,您應該嘗試在連接中使用第二個表格。 – bernie 2014-09-25 16:12:19

+0

謝謝,在這種情況下,連接查詢將如何工作? – d12n 2014-09-25 16:41:45

回答

2

in運算符僅適用於單列查詢。幸運的是,你不必在你的選擇列表中的count,以有它在你的having條款:

SELECT * 
FROM `firsttable` 
WHERE from_user_id IN (SELECT target 
         FROM  `second table` 
         WHERE type =' follower' 
         GROUP BY target 
         HAVING COUNT(*) > 2) 
相關問題