ok, alors essaie ça :
Code :
- SELECT [E-mail_clubistes].[E-mail], [E-mail_clubistes].[Code postal]
- FROM [E-mail_clubistes] LEFT JOIN [Jeux magny cours] ON [E-mail_clubistes].[E-mail] = [Jeux magny cours].[E-mail]
- where [Jeux magny cours].[E-mail] is null
- union
- SELECT [E-mail_clubistes].[E-mail], [E-mail_clubistes].[Code postal]
- FROM [E-mail_clubistes] RIGHT OUTER JOIN [Jeux magny cours] ON [E-mail_clubistes].[E-mail] = [Jeux magny cours].[E-mail]
- where [E-mail_clubistes].[E-mail] is null;
|
=> Si le "RIGHT OUTER JOIN" marche pas, interverti les deux tables et utilise "LEFT JOIN".
Si MySQL supporte le FULL JOIN ou FULL OUTER JOIN (PostGre le supporte, mais c'est plutôt rare) alors tu peux aussi faire :
Code :
- SELECT [E-mail_clubistes].[E-mail], [E-mail_clubistes].[Code postal]
- FROM [E-mail_clubistes] FULL OUTER JOIN [Jeux magny cours] ON [E-mail_clubistes].[E-mail] = [Jeux magny cours].[E-mail]
- where [E-mail_clubistes].[E-mail] is null or [Jeux magny cours].[E-mail] is null;
|
L'intérêt d'un FULL OUTER JOIN, c'est que si t'as 25 tables, tu fais tes 25 jointures et t'as pas besoin de faire 25 union
Sinon, si c'est une version de MySQL récente, tu peux aussi faire :
Code :
- SELECT *
- FROM [E-mail_clubistes] a, [Jeux magny cours] b
- WHERE NOT EXISTS (select null from [E-mail_clubistes] c where b.[E-mail] = c.[E-mail]) and NOT EXISTS (select null from [Jeux magny cours] d where a.[E-mail] = d.[E-mail])
|