Bonjour à tous,

Je recherchais un moyen de récupérer les valeurs contenues dans une table qui ne sont pas contenues dans une deuxième table et je suis tombé sur un vieux post dans lequel Stringbuilder répondait parfaitement à la demande:

https://www.developpez.net/forums/d5...xistant-table/

Citation Envoyé par StringBuilder Voir le message
Perso, je préfère cette syntaxe, qui évite de faire des regroupement totalement inutiles :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT distinct T1.ID_valeur
FROM prod_SUIVI T1
LEFT OUTER JOIN prod_suivi_SFR T2 ON T1.ID_valeur= T2.ID_valeur
where T2.ID_valeur is null
Si je transforme avec mes arguments:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
SELECT DISTINCT T1.M_id
FROM T1
LEFT OUTER JOIN T2 ON T1.M_id = T2.M_id
where T2.M_id is null
le SELECT fonctionne donc parfaitement et renvoie bien les valeurs de M_id qui n'existe pas dans ma table T2.

La question que je me pose maintenant est : comment supprimer les valeurs que renvoie cette requête.
J'ai donc posé cette question en MP à StringBuilder afin de ne pas déterrer un vieux post, mais nous étions finalement d'accord sur le fait de partager cette question

un manière proposée qui n'est pas forcément optimisée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
DELETE FROM T1
WHERE T1.m_ID
IN
(
SELECT T1.m_ID
FROM T1
LEFT OUTER JOIN T2 ON T1.M_id = T2.M_id
where T2.M_id is null
)
Cela semble bien mais ça ne fonctionne pas et comme je ne suis pas super calé en SQL :

A vos idées !