このコードは、評価を持つ投稿のみを返します。投稿に評価がない場合にnull値のすべての投稿を取得するにはどうすればよいですか?
select
posts.id,
posts.user_id,
posts.name,
posts.created_at,
ratings.post_id,
ratings.avg,
ratings.count
from
posts
join (
select
post_id,
avg(rating) as avg,
count(rating) as count
from
ratings
group by
ratings.post_id
) ratings
on ratings.post_id = posts.id
LEFT OUTER JOIN
を使用してみましたか? LEFT OUTER JOIN
は、対応する行がないjoin
ステートメント(posts
テーブル)の「左側」からのすべての行を保持します。ステートメント(ratings
テーブル)。 「右側」から欠落している行は、NULL
Sで埋められます。