CodeBlanks Logo Icon CodeBlanks

Member summary

Write a mixed report with FULL JOIN.

Member summary

To see the full loan history of members you use FULL OUTER JOIN. Members with no loans also appear.

SELECT m.name, l.book_id
FROM members m
FULL OUTER JOIN loans l ON l.member_id = m.id;

This query lists all members and loans.

m.name, l.book_id is selected from members m. loans l is joined on l.member_id = m.id, keeping every row of both tables.

Member summary — details

FULL OUTER JOIN keeps both sides. Unmatched members and loans come as NULL.

This way one report shows both members who never borrowed a book and faulty loan records without a member.

Practice Member summary

Join members with loans using FULL OUTER JOIN.

Starter code

query.sql
-- member summary
SELECT m.name, l.book_id
FROM members m

Sample solution

query.sql
SELECT m.name, l.book_id
FROM members m
FULL OUTER JOIN loans l ON l.member_id = m.id;

Expected output

name    book_id
Ayşe    1
Fatma   NULL

Questions and answers

Review the lesson questions together with their answers. To test yourself, solve the lesson interactively.

1 Add FULL OUTER JOIN

Question
SELECT m.name, l.book_id
FROM members m
____ loans l ON l.member_id = m.id;
Answer
SELECT m.name, l.book_id
FROM members m
FULL OUTER JOIN loans l ON l.member_id = m.id;

Explanation: FULL OUTER JOIN is the right answer.

2 Member summary: match the terms

Term Meaning
members member
loans loan
FULL OUTER both
NULL empty

3 What does FULL OUTER JOIN keep?

  • Only the right
  • Both sides Correct answer
  • Only the left
  • Only the matching ones

Explanation: FULL OUTER JOIN keeps both sides.

All lessons in Intermediate