2017-07-20 27 views
1

私はテーブルusersとテーブルquestionsを持っています。テーブルquestionsに少なくとも20のクエリ(db.questions to_user = db.users id)を持つusersテーブルから5人のランダムなユーザーを選択したいとします。すべて私が試してみた:sql - 2つのテーブルから選択

SELECT * 
FROM users s 
WHERE exists (SELECT 20 
       FROM questions m 
       WHERE m.to_user = s.id) 
ORDER BY RAND() 
LIMIT 5 

答えて

2

私は、これはあなたが望むものよりだと思う:

SELECT u.* 
FROM users u 
WHERE (SELECT COUNT(*) FROM questions q WHERE q.to_user = u.id) >= 20 
ORDER BY RAND() 
LIMIT 5; 
+0

ああ、非常に非常に非常にゴードンをありがとう!できます! – Scripy

+0

良いですが、あなたのテーブルにたくさんのユーザーや質問がある場合は、シャーディングを使用することができます。 –

関連する問題