Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exemples de UNION requêtes
Dans la UNION requête suivante, les lignes de la SALES table sont fusionnées avec les lignes de la LISTING table. Trois colonnes compatibles sont sélectionnées à partir de chaque table ; dans ce cas, les colonnes correspondantes ont les mêmes noms et types de données.
select listid, sellerid, eventid from listing union select listid, sellerid, eventid from sales listid | sellerid | eventid --------+----------+--------- 1 | 36861 | 7872 2 | 16002 | 4806 3 | 21461 | 4256 4 | 8117 | 4337 5 | 1616 | 8647
L'exemple suivant montre comment ajouter une valeur littérale à la sortie d'une UNION requête afin de voir quelle expression de requête a produit chaque ligne du jeu de résultats. La requête identifie les lignes de la première expression de requête comme « B » (pour « buyers ») et les lignes de la deuxième expression de requête comme « S » (pour « sellers »).
La requête identifie les acheteurs et les vendeurs pour les transactions de billet égales ou supérieures à 10 000 $ US. La seule différence entre les deux expressions de requête situées de part et d'autre de l'UNIONopérateur réside dans la colonne de jointure de la SALES table.
select listid, lastname, firstname, username, pricepaid as price, 'S' as buyorsell from sales, users where sales.sellerid=users.userid and pricepaid >=10000 union select listid, lastname, firstname, username, pricepaid, 'B' as buyorsell from sales, users where sales.buyerid=users.userid and pricepaid >=10000 listid | lastname | firstname | username | price | buyorsell --------+----------+-----------+----------+-----------+----------- 209658 | Lamb | Colette | VOR15LYI | 10000.00 | B 209658 | West | Kato | ELU81XAA | 10000.00 | S 212395 | Greer | Harlan | GXO71KOC | 12624.00 | S 212395 | Perry | Cora | YWR73YNZ | 12624.00 | B 215156 | Banks | Patrick | ZNQ69CLT | 10000.00 | S 215156 | Hayden | Malachi | BBG56AKU | 10000.00 | B
L'exemple suivant utilise un UNION ALL opérateur car les lignes dupliquées, si elles sont détectées, doivent être conservées dans le résultat. Pour une série d'événements spécifiqueIDs, la requête renvoie 0 ligne ou plus pour chaque vente associée à chaque événement, et 0 ou 1 ligne pour chaque annonce de cet événement. IDsLes événements sont propres à chaque ligne des EVENT tableaux LISTING et, mais il peut y avoir plusieurs ventes pour la même combinaison d'événement et d'annonce IDs dans le SALES tableau.
La troisième colonne du jeu de résultats identifie la source de la ligne. S'il provient du SALES tableau, il est marqué « Oui » dans la SALESROW colonne. (SALESROWest un alias pourSALES. LISTID.) Si la ligne provient du LISTING tableau, elle est marquée « Non » dans la SALESROW colonne.
Dans ce cas, le jeu de résultats se compose de trois lignes de vente pour affichage 500, événement 7787. En d’autres termes, trois transactions différentes ont eu lieu pour cette combinaison d’affichage et d’événement. Les deux autres listes, 501 et 502, n'ont généré aucune vente, de sorte que la seule ligne produite par la requête pour ces listes IDs provient du LISTING tableau (SALESROW= « Non »).
select eventid, listid, 'Yes' as salesrow from sales where listid in(500,501,502) union all select eventid, listid, 'No' from listing where listid in(500,501,502) eventid | listid | salesrow ---------+--------+---------- 7787 | 500 | No 7787 | 500 | Yes 7787 | 500 | Yes 7787 | 500 | Yes 6473 | 501 | No 5108 | 502 | No
Si vous exécutez la même requête sans le ALL mot clé, le résultat ne conserve qu'une seule des transactions de vente.
select eventid, listid, 'Yes' as salesrow from sales where listid in(500,501,502) union select eventid, listid, 'No' from listing where listid in(500,501,502) eventid | listid | salesrow ---------+--------+---------- 7787 | 500 | No 7787 | 500 | Yes 6473 | 501 | No 5108 | 502 | No