Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

équivalent à UNION JOIN

1 réponse
Avatar
Eric Belhomme
Bonjour,

J'ai un problème SQL dont la solution serait sans doute d'utiliser UNION
JOIN, mais cela n'existe pas dans SQL Server...
Voici le problème : j'ai plusieurs tables qui contiennent toutes une
colonne "trtdate", "packageid", "imageid". j'ai besoin de retrouver
ld'autre données en sachant ces 3 informations, mais pas dans quelle table
est dont stockées.

Je voulais donc faire une requete du genre :

select imageName from table_1 union join table_2 where trtdate =
'01/07/2007' and packageid = 123456 and imageid = 5

hélas cela ne fonctionne pas. J'aai tenté de faire ceci :

select t1.imagName as imageName, t2.imagName as imageName from table_1 t1
inner join table_2 t2 on t1.trtdate = t2.trtdate and t1.packageid =
t2.packageid
where t1.tratdate = '01/07/2007'

mais cela me retourne le produit cartésin des 2 tables, et de plus, je me
retroune avec 2 colonnes nommées "imageName"

Merci pour votre aide !
--
Rico

1 réponse

Avatar
Patrice
Je ne suis pas dûr de bien comprende ce que l'on veut faire. La syntaxe du
UNION est par exemple :

select imageName from table_1 union select imageName from table_2 where
trtdate '01/07/2007' and packageid = 123456 and imageid = 5

Il est possible ensuite de mettre cette requêtre entre parenthèses et de lui
adjoindre un alias ce qui permet ensuite de faire une jointure si besoin :
select * from a join (select c1,c2 from b union select c1,c2 from c) as
ResultStat join on etc...

Pour les dates, il est sans doute préférable d'utiliser le format ISO
YYYYMMDD qui fonctionne quel que soit le réglage de langue du serveur.

--
Patrice

"Eric Belhomme" <{rico}+no/ a écrit dans le message de
news:
Bonjour,

J'ai un problème SQL dont la solution serait sans doute d'utiliser UNION
JOIN, mais cela n'existe pas dans SQL Server...
Voici le problème : j'ai plusieurs tables qui contiennent toutes une
colonne "trtdate", "packageid", "imageid". j'ai besoin de retrouver
ld'autre données en sachant ces 3 informations, mais pas dans quelle table
est dont stockées.

Je voulais donc faire une requete du genre :

select imageName from table_1 union join table_2 where trtdate > '01/07/2007' and packageid = 123456 and imageid = 5

hélas cela ne fonctionne pas. J'aai tenté de faire ceci :

select t1.imagName as imageName, t2.imagName as imageName from table_1 t1
inner join table_2 t2 on t1.trtdate = t2.trtdate and t1.packageid > t2.packageid
where t1.tratdate = '01/07/2007'

mais cela me retourne le produit cartésin des 2 tables, et de plus, je me
retroune avec 2 colonnes nommées "imageName"

Merci pour votre aide !
--
Rico