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

requete SQL sur 2 tables avec 2 fois le meme nom ?

3 réponses
Avatar
EG
Bonjour,

J'ai un petit soucis de requete SQL (pour utiliser dans un programme Visual
Basic)

J'ai une table objet avec des champs nom, couleur1(couleurID), couleur2
(couleurID)

Les champs couleur1 et couleur2 proviennent d'une table couleur (couleurID,
CouleurNom).

Je cherche à faire une requete sur la table objet qui me renvoie le nom, la
couleur1 (le nom) et la couleur2 (le nom)

J'ai fait : "SELECT *,couleurnom as coul1, couleurnom as coul2 FROM
tbAppat,tbcouleur WHERE couleur1=couleurID ORDER BY AppatType, AppatNom"
mais ca me renvoit la meme couleur pour coul1 et coul2.

Je vois pas comment faire ma requete.



Merci de votre reponse.


Eric
eric.gaudenzi@wanadoo.fr

3 réponses

Avatar
Raymond
Bonjour.

ta requête devrait ressembler à ça:

SELECT Table1.Numero, Table1.Pays, Couleur.CouleurNom, Couleur_1.CouleurNom
FROM (Table1 INNER JOIN Couleur ON Table1.Couleur1 = Couleur.CouleurID)
INNER JOIN Couleur AS Couleur_1 ON Table1.Couleur2 = Couleur_1.CouleurID;

il y a deux tables couleur déclarées , une pour chaque couleur, mais
physiquement il n'y a qu'une table, couleur_1 étant une copie fictive de
couleur.
j'ai rajouté numéro et pays pour la vraisemblance de la requête.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"EG" a écrit dans le message de
news:bm9bc9$n10$
Bonjour,

J'ai un petit soucis de requete SQL (pour utiliser dans un programme
Visual

Basic)

J'ai une table objet avec des champs nom, couleur1(couleurID), couleur2
(couleurID)

Les champs couleur1 et couleur2 proviennent d'une table couleur
(couleurID,

CouleurNom).

Je cherche à faire une requete sur la table objet qui me renvoie le nom,
la

couleur1 (le nom) et la couleur2 (le nom)

J'ai fait : "SELECT *,couleurnom as coul1, couleurnom as coul2 FROM
tbAppat,tbcouleur WHERE couleur1=couleurID ORDER BY AppatType, AppatNom"
mais ca me renvoit la meme couleur pour coul1 et coul2.

Je vois pas comment faire ma requete.



Merci de votre reponse.


Eric




Avatar
EG
Bonjour,

Merci de votre reponse.


J'ai essaye:

SELECT Tbappat.*, tbCouleur.CouleurNom, tbCouleur_1.CouleurNom
FROM (Tbappat INNER JOIN Couleur ON Tbappat.Couleur1 = tbCouleur.CouleurID)
INNER JOIN tbCouleur AS tbCouleur_1 ON Tbappat.Couleur2 tbCouleur_1.CouleurID


En retour, j'ai le message Erreur de syntaxe dans l'opération Join.

J'ai essaye plein de choses avec et sans parenthese, les instructions INNER
JOIN a suivre et les ON apres ...), mais je trouve toujours pas.

a+

Eric


"Raymond" a écrit dans le message de
news:%
Bonjour.

ta requête devrait ressembler à ça:

SELECT Table1.Numero, Table1.Pays, Couleur.CouleurNom,
Couleur_1.CouleurNom

FROM (Table1 INNER JOIN Couleur ON Table1.Couleur1 = Couleur.CouleurID)
INNER JOIN Couleur AS Couleur_1 ON Table1.Couleur2 = Couleur_1.CouleurID;

il y a deux tables couleur déclarées , une pour chaque couleur, mais
physiquement il n'y a qu'une table, couleur_1 étant une copie fictive de
couleur.
j'ai rajouté numéro et pays pour la vraisemblance de la requête.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"EG" a écrit dans le message de
news:bm9bc9$n10$
Bonjour,

J'ai un petit soucis de requete SQL (pour utiliser dans un programme
Visual

Basic)

J'ai une table objet avec des champs nom, couleur1(couleurID), couleur2
(couleurID)

Les champs couleur1 et couleur2 proviennent d'une table couleur
(couleurID,

CouleurNom).

Je cherche à faire une requete sur la table objet qui me renvoie le nom,
la

couleur1 (le nom) et la couleur2 (le nom)

J'ai fait : "SELECT *,couleurnom as coul1, couleurnom as coul2 FROM
tbAppat,tbcouleur WHERE couleur1=couleurID ORDER BY AppatType,
AppatNom"


mais ca me renvoit la meme couleur pour coul1 et coul2.

Je vois pas comment faire ma requete.



Merci de votre reponse.


Eric







Avatar
Raymond
j'ai les yeux qui se croisent avec les couleurs dans tous les sens. je ne
vois que ça comme erreur:

SELECT Tbappat.*, tbCouleur.CouleurNom, tbCouleur_1.CouleurNom
FROM (Tbappat INNER JOIN tbCouleur ON Tbappat.Couleur1 =======================>
tbCouleur.CouleurID)

INNER JOIN tbCouleur AS tbCouleur_1 ON Tbappat.Couleur2 > tbCouleur_1.CouleurID


je n'y vois plus rien.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"EG" a écrit dans le message de
news:bmbnlm$b8$
Bonjour,

Merci de votre reponse.


J'ai essaye:

SELECT Tbappat.*, tbCouleur.CouleurNom, tbCouleur_1.CouleurNom
FROM (Tbappat INNER JOIN Couleur ON Tbappat.Couleur1 tbCouleur.CouleurID)
INNER JOIN tbCouleur AS tbCouleur_1 ON Tbappat.Couleur2 > tbCouleur_1.CouleurID


En retour, j'ai le message Erreur de syntaxe dans l'opération Join.

J'ai essaye plein de choses avec et sans parenthese, les instructions
INNER

JOIN a suivre et les ON apres ...), mais je trouve toujours pas.