Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2012, 17h18   #1
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
Par défaut Requete insert jointure

Bonjour,

J'ai un petit soucis avec un insert :

Table pays
ID_pays(PK) | pays

Table donnees
ID_donnee(PK) | ID_pays(FK) | ID_indicateur | ID_periodicite | ID_source

Dans ma table pays j'ai 1 et Allemagne et je veux insérer dans ma table donnees l'ID du pays que je veux insérer et non le nom !

J'envoi depuis un tableau en php donc moi je veux MATCH en quelques sorte le pays dans la table pays avec l'élément de mon tableau (exemple Allemagne) et ensuite INSERT l'id de mon pays dans ma table donnees ID_pays.....

Un truc comme ça ?

Code :
1
2
3
4
5
INSERT INTO donnees (ID_pays)
SELECT pays.ID_pays
FROM donnees,pays
WHERE pays.ID_pays=donnees.ID_pays
AND pays.pays = 'Allemagne'
Suis-je claire ?

Merci
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 17h20   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
Bonjour,

Mais concrétement quel est votre problème ?

Ou bloquez-vous ? Qu'avez-vous essayé ?
N'est-ce pas plus un problème php que SQL ?
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 17h27   #3
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
Concrètement je veux lors de mon insert dans ma table données je veux pas le mot Allemagne que j'ai dans ma variable en php à ce moment-ci mais l'ID qui se retrouve dans la table Pays. Mes tables sont liées avec ma FK ID_pays
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 17h46   #4
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 099
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 099
Points : 1 922
Points : 1 922
Bonsoir,
Ta requête insère bien l'Id du pays 'allemagne', mais uniquement si une ligne existe déjà dans la table donnees avec cet Id (à cause de la jointure, "mal" écrite en passant).
Donc en gros tu ne fais qu'ajouter des doublons dans la table donnees.

A quoi sert donc cette jointure avec la tables donnees ?

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 18h09   #5
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
ma table donnée est plus complete j'ai pas noté toutes les colonnes...il y a une donnée
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 18h15   #6
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
Citation:
Envoyé par tidou95220 Voir le message
Concretement je veux lors de mon insert dans ma table donnees je veux pas le mot allemagne que j'ai dans ma variable en php à ce moment si mais l'ID qui se retrouve dans la table pays. Mes tables son liés avec ma FK ID_pays
Stockez l'id de votre pays dans votre tableau php ?!

comme ca lors de la sélection de l'utilisateur du pays vous aurez déjà l'id du pays concerné.

Sinon vous pouvez aussi faire une requête de ce type :
Code :
1
2
3
 
INSERT INTO donnees (id_pays, ID_indicateur, ...)
SELECT ID_pays, ma_val1, ma_val2, ... FROM pays WHERE pays.pays = 'Allemagne'
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 18h28   #7
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
Merci c'est parfait


Code :
1
2
INSERT INTO donnees (id_pays)
SELECT ID_pays FROM pays WHERE pays.pays = 'Allemagne'
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 18h33   #8
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
Avec un table supplémentaire la difficulté augmente ? adméton avec une autre table de la meme structure que pays exemple : indicateur indicateur(ID_indicateur(PK),indicateur)

Sous requêtes ?

Merci
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/01/2012, 18h37   #9
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
Et pourquoi ne faites-vous pas ceci ?

Citation:
Envoyé par punkoff Voir le message
Stockez l'id de votre pays dans votre tableau php ?!
Qui est la solution propre pour résoudre votre problème ?
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 18h40   #10
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
Non pas vraiment.....c'est pas dans mes plans :s ... il faudrait que je fasse autrement... c'est un fichier CSV que j'ai transposé dans un tableau en PHP ... j'ai pas fait d'import CSV c'est normal
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h39.


 
 
 
 
Partenaires

Hébergement Web