Can’t Get My JOINs Right for this Query With the SQL Fiddle at http://sqlfiddle.com/#!18/fce3e/1, I’m trying to get the following results, but can’t wrap my head around it.  I don’t want to specify a specific category or personId values.

Thank you.

| id | message | category | personId | enabled |
|----|---------|----------|----------|---------|
|  1 |   Hello |        1 |        1 |       1 |
|  2 |      Hi |        1 |        1 |       1 |
|  3 |     Hey |        1 |        1 |       0 |
|  4 |    Argh |        2 |        1 |       0 |
|  5 |     Yar |        2 |        1 |       0 |
|  6 |  Hooray |        2 |        1 |       0 |
|  1 |   Hello |        1 |        2 |       0 |
|  2 |      Hi |        1 |        2 |       0 |
|  3 |     Hey |        1 |        2 |       0 |
|  4 |    Argh |        2 |        2 |       1 |
|  5 |     Yar |        2 |        2 |       1 |
|  6 |  Hooray |        2 |        2 |       0 |
|  1 |   Hello |        1 |        3 |       0 |
|  2 |      Hi |        1 |        3 |       0 |
|  3 |     Hey |        1 |        3 |       1 |
|  4 |    Argh |        2 |        3 |       0 |
|  5 |     Yar |        2 |        3 |       0 |
|  6 |  Hooray |        2 |        3 |       0 |
SELECT message.Id, 
       message.message,
       message.category,
       person.Id personId, 
       CASE WHEN personmessage.messageId IS NULL 
            THEN 0 
            ELSE 1
            END enabled 
FROM message
CROSS JOIN person
LEFT JOIN personmessage ON personmessage.personId = person.Id
                       AND personmessage.messageId = message.Id
ORDER BY 4,1


fiddle