Je to možné pomocí tohoto malého triku (OUTER JOIN na stole many-to-many, s omezením, že GroupID musí být 3 (pro Drama)
http://sqlfiddle.com/#!9/01cf3/1
SELECT elements.ID, elements.Element, groups.Genre
FROM elements
LEFT OUTER JOIN group_elements
ON elements.ID = group_elements.ElementID
AND group_elements.GroupID = 3
LEFT OUTER JOIN groups
ON group_elements.GroupID = groups.ID
LEFT OUTER JOIN
znamená :vzít všechny řádky z tabulek, které předcházely (ty, které jsou na LEVÉ straně LEFT OUTER JOIN
, chcete-li), i když jim v následujících tabulkách neodpovídají žádné řádky. Podmínka ON elements.ID = group_elements.ElementID AND group_elements.GroupID = 3
říká, že pokud najdeme něco, co odpovídá našemu ElementID, musí to být také drama (GroupID =3). Poté provedeme další LEFT OUTER JOIN v tabulce skupin, což nám umožní zobrazit sloupec Genre nebo NULL, pokud prvek nebyl drama.