0

テーブルusersがあり、単純な検索クエリがあります。

SELECT * 
FROM   users 
WHERE  username LIKE 'rya%' 
LIMIT 10

followsまた、基本的に他のユーザーがフォローしているユーザーのリストであるという別のテーブルもあります。上記のクエリを変更して、特定のユーザーがフォローしている範囲内のみを検索するようにしました。

SELECT users.* 
FROM   follows
INNER JOIN users ON users.id = follows.following_id
WHERE  username LIKE 'rya%' AND follows.follower_id = 18
LIMIT 10

ほとんどの場合、上記のクエリはいくつかの結果しか返しません (users テーブル全体を検索していないため)。

私がやりたいことは、上記の 2 つのクエリを組み合わせて、特定の文字列に一致するユーザー名の最大 10 件の結果を返し、最初にユーザーのフォローをリストしてから、ユーザーのテーブル全体を検索することです。

私はすでに解決策を持っていますが、最初に2番目のクエリを実行し、次に最初に2番目のクエリを実行して、アプリケーションレベルでこれを行う必要があります。このすべてを 1 つのクエリで実行できる方法はありますか?

ありがとう

4

1 に答える 1