Bonjour,
Si j'ai bien compris, tu veux que avec un table1_id donnée, afficher les lignes de table2 qui ne sont pas encore liées à table1 via la tabledeliaison.
Dans ce cas je t'ai trouvé la requête qui fait ça :
SELECT DISTINCT * FROM table2
WHERE NOT EXISTS (
SELECT tabledeliaison.table2_id FROM tabledeliaison
WHERE tabledeliaison.table2_id = table2.id
AND tabledeliaison.table1_id = 2
)
Petite explication, en gros tu SELECT sur la table2 les lignes où la requête suivante n'améne aucun résultat.
La requête dans les parenthèses donne toutes les lignes où tabledeliaison possède l'id de la table2 (qui correspond à un paramètre donné par la requête avant la parenthèse) et que l'id de la table1 soit celle donnée par toi, tu dois remplacer le '2' par l'id de ta table1.
Donc si cette requête donne un résultat, alors le SELECT de base n'envoi pas le résultat.
Voilà l'explication est un peu bordélique je l'avoue, en espérant que ton problème soit résolu.
A+