A voir également:
- Syntax Error JOIN (sql/access)
- Syntax Error JOIN (sql/access) ✓ - Forum - Access
- Parse error: syntax error, unexpected '$sql' ✓ - Forum - PHP
- Syntax error or access violation: 1064 ✓ - Forum - MySQL
- INNER JOIN Multiples sur requêtes SQL ACCESS ✓ - Forum - Programmation
- PDOException: SQLSTATE[42000]: Syntax error or access violation: ✓ - Forum - Webmaster
8 réponses
Deathmann
- Messages postés
- 220
- Date d'inscription
- jeudi 9 juin 2011
- Statut
- Membre
- Dernière intervention
- 11 décembre 2015
Bonjour,
Dans ton FROM, met la table métier.
Cordialement.
Dans ton FROM, met la table métier.
Cordialement.
Signaler
sketchou
j'ajoute métier ? ou je supprime candidat et je mets à la place métier ?
sketchou
enfaite si j'enlève candidat et je mets à la place la table Metier, j'ai toujours la même erreur
Merci beaucoup de me répondre Deathmann
Merci beaucoup de me répondre Deathmann
Deathmann
- Messages postés
- 220
- Date d'inscription
- jeudi 9 juin 2011
- Statut
- Membre
- Dernière intervention
- 11 décembre 2015
Pas de soucis.
Non, il faut que tu es les deux tables, pour faire une jinture, il faut déclarer les deux tables avec lesquelles tu vas travailler, dans ton cas, il faut mettre :
SELECT nom
FROM candidat, metier
INNER JOIN metier ON metier.codemetier=candidat.codemetier
AND libellé.metier="comptable";
Pour ma part, faisant énormément de requêtes SQL dans mon cursus scolaire, ma syntaxe serait celle ci :
SELECT nom
FROM candidat, metier
WHERE metier.codemetier=candidat.codemetier
AND libellé.metier="comptable";
Et, personnellement, je ne mettrai pas d'accent, ça peut provoquer des erreurs.
Cordialement.
Non, il faut que tu es les deux tables, pour faire une jinture, il faut déclarer les deux tables avec lesquelles tu vas travailler, dans ton cas, il faut mettre :
SELECT nom
FROM candidat, metier
INNER JOIN metier ON metier.codemetier=candidat.codemetier
AND libellé.metier="comptable";
Pour ma part, faisant énormément de requêtes SQL dans mon cursus scolaire, ma syntaxe serait celle ci :
SELECT nom
FROM candidat, metier
WHERE metier.codemetier=candidat.codemetier
AND libellé.metier="comptable";
Et, personnellement, je ne mettrai pas d'accent, ça peut provoquer des erreurs.
Cordialement.
sketchou
Salut,
Merci encore de m'avoir répondu
J'ai toujours une erreur : Erreur de syntaxe dans une expression, sachant que j'ai les deux tables :
CANDIDAT(#codecand,nom,prénom,adresse,codemetier)
METIER(#codemetier,libellé)
J'ai pris ton code sql, mais ça ne marche pas, merci encore
Merci encore de m'avoir répondu
J'ai toujours une erreur : Erreur de syntaxe dans une expression, sachant que j'ai les deux tables :
CANDIDAT(#codecand,nom,prénom,adresse,codemetier)
METIER(#codemetier,libellé)
J'ai pris ton code sql, mais ça ne marche pas, merci encore
Deathmann
- Messages postés
- 220
- Date d'inscription
- jeudi 9 juin 2011
- Statut
- Membre
- Dernière intervention
- 11 décembre 2015
Select nom
From candidat
Where codemetier = (Select codemetier
From metier
Where libellé="comptable");
Essayes ça, si c'est un problème de jointure, en espérant que ça marchera.
From candidat
Where codemetier = (Select codemetier
From metier
Where libellé="comptable");
Essayes ça, si c'est un problème de jointure, en espérant que ça marchera.
Deathmann
- Messages postés
- 220
- Date d'inscription
- jeudi 9 juin 2011
- Statut
- Membre
- Dernière intervention
- 11 décembre 2015
Aaaah, je crois avoir compris, pourrais tu me donner le mrd de ta base de données s'il te plait, en MP si tu ne tiens pas à le dévoiler sur le forum. Je pense avoir compris
Deathmann
- Messages postés
- 220
- Date d'inscription
- jeudi 9 juin 2011
- Statut
- Membre
- Dernière intervention
- 11 décembre 2015
Au vu de tes tables et de ce que tu as écris en MP, je vois ton problème, tu n'as fait aucune relation entre les tables, cela est pourtant impératif, il faut une intégrité référentielle entres les tables. Pour qu'une clé étrangère dépendent d'une autre il faut d'abord savoir de quoi elle dépend.
Va sur ce site : https://www.developpez.net/forums/d373713/logiciels/microsoft-office/access/modelisation/access-relation-tables-cave-vin/
Tu vois toutes les tables reliées entres elles par un lien '1-à plusieurs'.
Pour ce faire, c'est dans la barre d'outils en haut, c'est un symbole avec 3 tables reliées entres elles. quand tu l'auras trouvé et rajouter tes tables dedans, préviens moi.
Va sur ce site : https://www.developpez.net/forums/d373713/logiciels/microsoft-office/access/modelisation/access-relation-tables-cave-vin/
Tu vois toutes les tables reliées entres elles par un lien '1-à plusieurs'.
Pour ce faire, c'est dans la barre d'outils en haut, c'est un symbole avec 3 tables reliées entres elles. quand tu l'auras trouvé et rajouter tes tables dedans, préviens moi.
blux
- Messages postés
- 23763
- Date d'inscription
- dimanche 26 août 2001
- Statut
- Modérateur
- Dernière intervention
- 13 janvier 2020
WHERE (((metier.codemetier)=[candidat].[codemetier])
Tu refais une jointure alors que tu l'as déjà faite avec le INNER JOIN, c'est inutile.
Ton WHERE ne doit comporter que metier.libellé)='comptable'
Quant au fait que tu veuilles prénom et le reste, ta requête est faite à l'envers, tu dois mettre FROM candidat INNER JOIN metier. Dans ce cas, les autres champs de candidat te seront accessibles.
Tu refais une jointure alors que tu l'as déjà faite avec le INNER JOIN, c'est inutile.
Ton WHERE ne doit comporter que metier.libellé)='comptable'
Quant au fait que tu veuilles prénom et le reste, ta requête est faite à l'envers, tu dois mettre FROM candidat INNER JOIN metier. Dans ce cas, les autres champs de candidat te seront accessibles.