2012-07-15 64 views
1
SELECT au.* 
    FROM account au 
    WHERE au.id IN (
    SELECT fa.from_user_id 
     FROM approvals fa 
     WHERE fa.to_user_id = 1 
     GROUP BY fa.from_user_id 
    ) 
ORDER BY first_name ASC, last_name ASC 
LIMIT 0, 18446744073709551615; 

我該如何將此更改爲EXISTS而不是IN()我如何將這個「SELECT IN」更改爲MySQL的「EXISTS」查詢?

+0

改變的原因是什麼? – zerkms 2012-07-15 23:40:24

+1

在這個例子中你不需要使用'GROUP BY'。 – Neil 2012-07-15 23:54:31

回答

0
SELECT au.* 
FROM account au 
WHERE EXISTS (
    SELECT 1 FROM approvals fa 
    WHERE fa.to_user_id=1 
    AND fa.from_user_id = au.id 
) 
ORDER BY first_name ASC, last_name ASC LIMIT 0, 18446744073709551615;