 <p>The trick is to left join on album permissions which means every album will be selected and if there is a permission record associated with it, that record will be selected too.</p> <p>Then just add a where clause that says either the album must not be private, or a permission record should exist.</p> <pre><code>SELECT Albums.Album_ID, Albums.Name, Albums.Private FROM Albums LEFT JOIN AlbumPermissions ON Albums.Album_ID = AlbumPermissions.Album_ID AND AlbumPermissions.User_ID = 5 WHERE Albmums.private == 'no' OR AlbumPermissions.ID IS NOT NULL </code></pre>