C'est possible avec cette petite astuce (OUTER JOIN sur la table many-to-many, avec la contrainte que le GroupID doit être 3 (pour 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
signifie :prend toutes les lignes des tables qui précèdent (celles qui sont à GAUCHE du LEFT OUTER JOIN
, si vous voulez), même s'il n'y a pas de lignes qui leur correspondent dans les tableaux suivants. La condition ON elements.ID = group_elements.ElementID AND group_elements.GroupID = 3
dit que si nous trouvons quelque chose qui correspond à notre ElementID, cela doit aussi être un drame (GroupID =3). On fait ensuite un autre LEFT OUTER JOIN sur la table des groupes, ce qui permet d'afficher la colonne Genre, ou NULL si l'élément n'était pas un drame.