Skip to content
The Chat Archive
gpt-4-0314· OpenAI WildChat-4.8M (AI2)

REPRESENTANT (IDrep, nomR, ville) PRODUIT (IDprod, nomP, couleur, enStock) CLIENT…

  1. User

    REPRESENTANT (ID_rep, nomR, ville) PRODUIT (ID_prod, nomP, couleur, enStock) CLIENT (ID_client, nomC, ville) VENTE (ID_rep, ID_prod, ID_client, quantite) FK (ID_rep) REFERENCES REPRESENTANT(ID_rep), FK (ID_prod) REFERENCES PRODUIT(ID_prod), FK (ID_client) REFERENCES CLIENT(ID_client)

    Ecrivez la requête SQL correspondant à la question suivante : Quels sont les numéros des clients (ID_client) qui n'ont rien acheté à un représentant de Montréal ? Les clients qui n’ont acheté aucun produit à aucun représentant ne doivent pas se retrouver dans le résultat.

  2. Assistant

    SELECT DISTINCT ID_client FROM CLIENT WHERE ID_client NOT IN ( SELECT VENTE.ID_client FROM VENTE INNER JOIN REPRESENTANT ON VENTE.ID_rep = REPRESENTANT.ID_rep WHERE REPRESENTANT.ville = 'Montréal' ) AND ID_client IN ( SELECT VENTE.ID_client FROM VENTE );

  3. User

    SELECT DISTINCT ID_client FROM Client WHERE ID_client NOT IN (SELECT V.ID_Client FROM Vente v, Representant r WHERE v.id_rep = r.id_rep AND r.ville = 'Montreal') AND ID_client IN ( SELECT VENTE.ID_client FROM VENTE );

    Cette requête est-t-elle correcte comme réponse alternative ?

  4. Assistant

    Oui, cette requête est également correcte comme réponse alternative.

    Les deux requêtes donnent le même résultat. La première utilise la syntaxe JOIN pour joindre les tables VENTE et REPRESENTANT, tandis que la deuxième utilise la syntaxe de conditions dans la clause WHERE pour joindre les mêmes tables. Les deux approches sont valides et dépendent de la préférence du rédacteur de la requête.