Jointure UNION
Concatène les lignes d'une table à la fin d'une autre table.
SELECT col_1 [, col_2, ... col_n]
FROM référence_de_table
UNION [ALL]
SELECT col_1 [, col_2, ... col_n]
FROM référence_de_table
Description
Utilisez la jointure UNION pour joindre les lignes d'une table à la fin d'un autre ensemble résultant de requête SELECT structuré de façon similaire. Les instructions SELECT pour les tables source et de jointure doivent inclure le même nombre de colonnes pour être compatibles UNION. Les structures des tables elles-mêmes n'ont pas besoin d'être les mêmes tant que les colonnes incluses dans les instructions SELECT le sont.
SELECT NoCli, Société
FROM Clients
UNION
SELECT NoCli, Société
FROM Anciens_Clients
La correspondance des types de données d'une colonne n'est pas toujours obligatoire pour les données renvoyées par une UNION de plusieurs tables. S'il y a une différence de type de données entre deux tables pour une colonne donnée, une erreur se produits la colonne correspondante des autres tables perd des données. Si, par exemple, la colonne de la première table est de type DATE et celle de la seconde table de type TIMESTAMP, une partie de la valeur TIMESTAMP serait perdue si elle était placée dans une colonne de type moindre DATE. Une erreur "Type mismatch in expression" est générée dans ces situations. Généralement, quand il y a des différences de type entre les tables, utilisez la fonction CAST pour convertir les colonnes dans un type compatible.
SELECT S.ID, CAST(S.Champ_Date AS TIMESTAMP)
FROM Source S
UNION ALL
SELECT J.ID, J.Timestamp_Field
FROM Joiner J
La correspondance de noms n'est pas obligatoire pour les colonnes de l'ensemble résultant extraites par UNION sur plusieurs tables. Les différences des noms des colonnes sont traitées automatiquement. Si la première colonne de deux tables ont des nom différents, la première colonne de l'ensemble résultant UNION utilisera le nom de colonne de la première instruction SELECT.
Par défaut, les lignes non distinctes sont agrégées en lignes uniques dans une jointure UNION. Utilisez ALL pour retenir toutes les lignes non distinctes.
Pour joindre deux tables avec UNION où une des tables n'a pas une colonne présente dans une autre, une constante ou expression compatible peut être utilisée à la place dans l'instruction SELECT de la colonne manquante. Par exemple, s'il n'y a pas de colonne dans la table JOINING correspondant à la colonne NOM dans SOURCE, une expression est utilisée pour fournir une valeur pour une pseudo-colonne JOINING.NOM. Si, par exemple SOURCE.NOM est de type CHAR(10), la fonction CAST est utilisée pour convertir une chaîne de caractères vides en CHAR(10).
SELECT S.ID, S.Nom
FROM Source S
UNION ALL
SELECT J.ID, CAST("" AS CHAR(10))
apparament ca fonctionne voici ma ligne
SQL "SELECT Numero from com union select Numero from apv WHERE numero " & numero & ""
" & Numero & " est une valeur que je récupére dans l'url
Mon seule soucis c'est comment afficher tous les enregistrements qui comporte le meme numero
voici mon script en entier
<% numero = Request.QueryString("numero") %>
<% Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
OBJdbConnection.Open "base"SQL "SELECT Numero from com union select Numero from apv WHERE numero " & numero & ""
Set rs = OBJdbConnection.Execute(SQL)
%>
<%do while not rs.EOF %>
<%=request("Numero")%>
<%rs.movenext
loop %>
<% rs.close
set rs = nothing %>
le résultat c'est qui m'affiche par exemple si le numero=12