2
ステップを保存してこれらの2つのクエリを結合しようとしましたが、どのように最善を尽くすかわかりません。基本的に、最初のクエリはシステムのレビューのリストを取得しており、2番目のクエリは通知が送信されているかどうかを確認しています(返された結果が返されている場合)。通知は(はい、私は、これはそれ自体では動作しません知っている)が存在する場合クエリを組み合わせる
SELECT r.*,
coalesce((SELECT AVG(rr.rating)
FROM `" . DBTABLEPREFIX . "reviews_ratings` rr
WHERE rr.review_id = r.id
)
, ''
) AS rating,
FROM `" . DBTABLEPREFIX . "reviews` r
WHERE BELOW SELECT IS 0 RESULTS
チェック:
SELECT rn.*
FROM `" . DBTABLEPREFIX . "reviews_notifications` rn
WHERE rn.website_id = r.website_id
AND rn.post_id = r.post_id
任意のアイデアを適切にこれを行う方法に
はレビューを取得しますか?また、レビューテーブルとレビュー_レーティングテーブルが毎日新鮮なデータでクリアされるため、通知テーブルのr.idを確認できない理由が考えられます。このプロセスはおそらく後で書き直されて殺されず、新しいアイテムだけが追加されます。
おかげで、私が探していたものだけ! – spyke01
どのように合体するのではなく、2番目の方法を組み合わせると効率が上がりますか?たぶんクエリは、クエリのような毎回ではなく、一度だけ実行されるようです。 – spyke01
あなたはコースからそれをテストすることができます。しかし、2番目の書き込みは、派生テーブルが最初に計算され(グループの後に結果がある)、この派生テーブルがレビューテーブルに結合されることを意味します。 –