web-dev-qa-db-ja.com

null値で結合する方法は?

このコードは、評価を持つ投稿のみを返します。投稿に評価がない場合に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
3
Sasay

LEFT OUTER JOINを使用してみましたか? LEFT OUTER JOINは、対応する行がないjoinステートメント(postsテーブル)の「左側」からのすべての行を保持します。ステートメント(ratingsテーブル)。 「右側」から欠落している行は、NULLSで埋められます。

5
yemet