Bonjour à tous,
j'ai trouvé plusieurs exemples sur des forums mais malheureusement quand je les applique cela ne marche pas. je vous explique j'ai deux tables :

Table A
champ1 designation
1 coucou
2 c'est moi
3 pas moi

Table B
id champ1
1 1
2 3
3 2
4 5
5 10

je voudrai comparer ces deux tables et sortir comme résultat 5 et 10 de la table B. donc je fais une jointure entre les deux tables :

SELECT tableA.* FROM tableA LEFT JOIN tableB ON tableA.champ1=tableB.champ1 WHERE tableB.champ1 IS NULL

mais cela ne marche pas

quelqu'un a une idée ?

merci

9 réponses


almathias
Auteur
Réponse acceptée

cela y est j'ai trouvé

SELECT DISTINCT uscars.id_vo, image.numero
FROM image
LEFT OUTER JOIN uscars ON uscars.id_vo = image.numero
WHERE uscars.id_vo IS NULL
ORDER BY image.numero DESC

c'était le LEFT OUTER JOIN

merci a tous de m'avoir répondu

@ bientôt

Essaie Right join pour voir. Car normalement c'est la table B qui doit avoir des valeur null pas l'inverse.

malheureusement cela ne marche pas oups !! j'ai oublié de te remercier pour ta réponse :)

SELECT tableB.id FROM tableB LEFT JOIN tableA ON tableB.champ1 = tableA.champ1 WHERE tableA.champ1 IS NULL;

Si tu as besoin d'une explication n'hésite pas ;)

non cela ne marche toujours pas ! pourtant j'essaye de tout les cotés.
j'ai mes deux tables 'uscars' qui comprend le champ 'id_vo' puis mon autre table 'image' qui comprend 'numéro' je souhaite avoir tout les numéros de la table image qui ne sont pas dans uscars.id_vo. voila la requete que tu m'as dis de faire
SELECT image.numero FROM image LEFT JOIN uscars ON image.numero = uscars.id_vo WHERE uscars.id_vo IS NULL
Mais cela affiche tout les resultat sauf les numéro qui ne sont pas dans us cars. il faudrait faire le contraire.
merci pour ton aide
je cherche encore je suis sur que la solution est très simple

Dans ta table, c'est quoi la valeur par défaut quand on met rien ?

dans mes deux tables j'ai du numérique id_vo dans la table uscars est égal au numéro dans la table image.

j'ai un truc qui bloc car la requête est bonne à mon avis. Mes deux champ son en bien en INT .

je continue à chercher...

Tout ce que je peux te conseiller dans ce genre de situation, c'est d'aller dans ta console phpmyadmin et tester petit à petit ta requête SQL.

:) c'est ce que je fais ;)