Accéder au contenu principal Passer au contenu complémentaire

Sélectionner des éléments de deux tableaux

Créez une requête effectuant une jointure entre deux tableaux et sélectionnant des éléments des deux pour créer la sortie.

Procédure

  1. Créez une clause FROM pour appeler le tableau order et donnez-lui un alias : FROM order AS o.

    Dans l'échantillon fourni, les deux tableaux contiennent un élément nommé custid. Pour appeler ces deux éléments dans la requête, vous avez besoin d'un alias pour chaque tableau. Pour plus d'informations, consultez Utiliser la clause FROM.

  2. Désimbriquez le tableau items depuis order à l'aide de la clauseu UNNEST o.items.
  3. Ajoutez une clause JOIN pour effectuer une jointure entre le tableau customer et le tableau order lorsque la valeur de custid est la même dans les deux tableaux : JOIN customer AS c ON c.custid = o.custid
  4. Créez une clause SELECT pour retourner le nom et la note du client ou de la cliente, le numéro de commande et le numéro de l'élément.
    SELECT {
        c.name,
        c.rating,
        o.orderno,
        itemno,
    }

Résultats

La requête doit ressembler à ceci :
FROM order AS o
UNNEST o.items
JOIN customer AS c ON c.custid = o.custid
SELECT {
    c.name,
    c.rating,
    o.orderno,
    itemno
}
Elle retourne le résultat suivant :
[
	{
		"name": "R. Duvall",
		"rating": 640,
		"orderno": 1001,
		"itemno": 347
	},
	{
		"name": "R. Duvall",
		"rating": 640,
		"orderno": 1001,
		"itemno": 193
	},
	{
		"name": "T. Cruise",
		"rating": 750,
		"orderno": 1002,
		"itemno": 460
	},
	{
		"name": "T. Cruise",
		"rating": 750,
		"orderno": 1002,
		"itemno": 680
	},
	{
		"name": "B. Pitt",
		"rating": null,
		"orderno": 1003,
		"itemno": 120
	},
	{
		"name": "B. Pitt",
		"rating": null,
		"orderno": 1003,
		"itemno": 460
	},
	{
		"name": "J. Roberts",
		"rating": 565,
		"orderno": 1004,
		"itemno": 680
	},
	{
		"name": "J. Roberts",
		"rating": 565,
		"orderno": 1004,
		"itemno": 195
	},
	{
		"name": "T. Hanks",
		"rating": 750,
		"orderno": 1005,
		"itemno": 460
	},
	{
		"name": "T. Hanks",
		"rating": 750,
		"orderno": 1005,
		"itemno": 347
	},
	{
		"name": "T. Hanks",
		"rating": 750,
		"orderno": 1005,
		"itemno": 780
	},
	{
		"name": "T. Hanks",
		"rating": 750,
		"orderno": 1005,
		"itemno": 375
	},
	{
		"name": "R. Duvall",
		"rating": 640,
		"orderno": 1006,
		"itemno": 680
	},
	{
		"name": "R. Duvall",
		"rating": 640,
		"orderno": 1006,
		"itemno": 120
	},
	{
		"name": "R. Duvall",
		"rating": 640,
		"orderno": 1006,
		"itemno": 460
	},
	{
		"name": "T. Cruise",
		"rating": 750,
		"orderno": 1007,
		"itemno": 185
	},
	{
		"name": "T. Cruise",
		"rating": 750,
		"orderno": 1007,
		"itemno": 680
	},
	{
		"name": "T. Cruise",
		"rating": 750,
		"orderno": 1008,
		"itemno": 460
	}
]

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !