Exporter donnée d'une table avec jointur sql
Résolu/Fermé
sinifer
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
-
15 mai 2009 à 09:00
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 - 18 mai 2009 à 14:22
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 - 18 mai 2009 à 14:22
A voir également:
- Exporter donnée d'une table avec jointur sql
- Table ascii - Guide
- Table des matières word - Guide
- Chrome exporter favoris - Guide
- Exporter favoris firefox - Guide
- Excel reporter des données sur une autre feuille avec conditions - Forum Excel
14 réponses
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 384
15 mai 2009 à 10:39
15 mai 2009 à 10:39
Bonjour,
Je pense que le code devrait être le suivant
J'ai pas testé, a toi de voir
A plus
Je pense que le code devrait être le suivant
UPDATE es_customers SET customers_date_inscription = DATE_SUB( ( SELECT MIN(pl.planning_date) FROM es_planning pl WHERE pl.customers_id = customers_id AND pl.planning_type='gratuite'), 'INTERVAL 2 DAY')
J'ai pas testé, a toi de voir
A plus
sinifer
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
11
15 mai 2009 à 11:24
15 mai 2009 à 11:24
je te remerci mais sa me sort qu'une date donc j'ai mis un groupe by pour que sa me sorte tou
de plus sa me mettai une erreur :#1064 - Erreur de syntaxe près de ''INTERVAL 2 DAY')' à la ligne 7
donc j'ai enlevé les ' ' entre interval 2 days et j'ai une nouvelle erreur qui est
#1241 - Operand should contain 1 column(s)
donc voila ou j'en suis merci pour ton aide
de plus sa me mettai une erreur :#1064 - Erreur de syntaxe près de ''INTERVAL 2 DAY')' à la ligne 7
donc j'ai enlevé les ' ' entre interval 2 days et j'ai une nouvelle erreur qui est
#1241 - Operand should contain 1 column(s)
donc voila ou j'en suis merci pour ton aide
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 384
15 mai 2009 à 11:47
15 mai 2009 à 11:47
Bonjour,
Petite question, quelle base de données utilises-tu ? Cela afin de trouver la syntaxe exacte pour soustraire deux jours à une date.
A plus
Petite question, quelle base de données utilises-tu ? Cela afin de trouver la syntaxe exacte pour soustraire deux jours à une date.
A plus
sinifer
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
11
15 mai 2009 à 11:49
15 mai 2009 à 11:49
je suis sur phpMyadmin avec base sql
et je teste ave easy php sur une base sql aussi
et je teste ave easy php sur une base sql aussi
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sinifer
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
11
15 mai 2009 à 12:22
15 mai 2009 à 12:22
la syntax est bonne non??
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 384
15 mai 2009 à 12:33
15 mai 2009 à 12:33
Bonjour,
Selon la documentation de MySql, il ne faut pas utiliser de ' pour interval
A plus
Selon la documentation de MySql, il ne faut pas utiliser de ' pour interval
DATE_SUB('2009-05-15', INTERVAL 2 DAY)
A plus
sinifer
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
11
15 mai 2009 à 12:38
15 mai 2009 à 12:38
oui j'ai vue c'est pour sa que je l'ai enlevé mais comme je t'ai dit il me donne un nouveau message d'envoit qui est :#1242 - Subquery returns more than 1 row
et le code est comme sa
j'avais rajouté GROUP BY customers_id pour que sa me sorte tous les id sinon sa me mettait que celui de customers_id=1
et le code est comme sa
UPDATE en_customers SET customers_date_inscription = DATE_SUB( ( SELECT MIN(pl.planning_date) FROM en_planning pl WHERE pl.customers_id = customers_id AND pl.planning_type='gratuite' GROUP BY customers_id ), INTERVAL 2 DAY)
j'avais rajouté GROUP BY customers_id pour que sa me sorte tous les id sinon sa me mettait que celui de customers_id=1
sinifer
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
11
15 mai 2009 à 14:12
15 mai 2009 à 14:12
J'ai enlevé le group by customers_id et sa ma mis sur tous les champs customers_date_inscription la même dates pour tous
sinifer
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
11
15 mai 2009 à 14:25
15 mai 2009 à 14:25
donc j'ai essayer une jointure de ce style car pour chaque customers_id (de la table en_customers) = customers_id (de la table en_planning)
donc j'ai essayer comme sa:
et sa ma afficher ce message:
#1054 - Champ 'customers_id' inconnu dans from clause
donc j'ai changé en pour la jointure mais toujours rien
et sa ma mis:
#1064 - Erreur de syntaxe près de '.customers_id = en_planning.customers_id ) SET customers_date_inscription = DA' à la ligne 7
donc j'ai essayer comme sa:
UPDATE en_customers JOIN (SELECT MIN(planning_date) as min_planning_date FROM en_planning WHERE planning_type='gratuite' GROUP BY customers_id ) as planning USING (customers_id) SET customers_date_inscription = DATE_SUB(min_planning_date, INTERVAL 2 DAY)
et sa ma afficher ce message:
#1054 - Champ 'customers_id' inconnu dans from clause
donc j'ai changé en pour la jointure mais toujours rien
UPDATE en_customers JOIN (SELECT MIN(planning_date) as min_planning_date FROM en_planning WHERE planning_type='gratuite' GROUP BY customers_id ) as planning USING ( en_customers.customers_id = en_planning.customers_id ) SET customers_date_inscription = DATE_SUB(min_planning_date, INTERVAL 2 DAY)
et sa ma mis:
#1064 - Erreur de syntaxe près de '.customers_id = en_planning.customers_id ) SET customers_date_inscription = DA' à la ligne 7
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 384
15 mai 2009 à 14:50
15 mai 2009 à 14:50
Bonjour,
Voici le code qui devrait faire ce que tu veux, un peu en retard mais bon, d'abord le lunch et ensuite j'ai crée une base de données de test avec tes deux tables, donc j'ai testé le code et cela fonctionne
A plus
Voici le code qui devrait faire ce que tu veux, un peu en retard mais bon, d'abord le lunch et ensuite j'ai crée une base de données de test avec tes deux tables, donc j'ai testé le code et cela fonctionne
update en_customers cu set cu.customers_date_inscription = date_sub( (select min(pl.planning_date) from en_planning pl where pl.customers_id = cu.customers_id and pl.planning_type='gratuite'),interval 2 day)
A plus
sinifer
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
11
15 mai 2009 à 15:35
15 mai 2009 à 15:35
là elle est lancé j'attend de voir les résultats mais déjà sa tourne donc c'est bon signe j'espère que ta bien mangé en tous cas merci pour ce que tu as fait mais je te réserve les éloge quant j'aurai mes résults
a plus
a plus
sinifer
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
11
15 mai 2009 à 16:31
15 mai 2009 à 16:31
hello c'est vrai que j'ai un peu moin de 20'000 enregistrement mais là sa fait une heure que sa tourne tu avais combien de donné quant tu as lancé cette requette un peu près 5 -6 ???
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 384
15 mai 2009 à 16:55
15 mai 2009 à 16:55
Bonjour,
Dans la table des customers, j'avais 5 entrées et dans la table planning 2 à 3 entrées par customer.
Est-tu sûr d'avoir une clé primaire sur la colonne customer_id dans les deux tables, sinon la requête va lire pour chaque customer tous les enregistrements de ta table planning.
A plus
Dans la table des customers, j'avais 5 entrées et dans la table planning 2 à 3 entrées par customer.
Est-tu sûr d'avoir une clé primaire sur la colonne customer_id dans les deux tables, sinon la requête va lire pour chaque customer tous les enregistrements de ta table planning.
A plus
sinifer
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
11
15 mai 2009 à 17:07
15 mai 2009 à 17:07
oula la clé primaire de la table planning est planning_id et la foreign key c'est customers_id
car dans la table planning j'ai
planning_id relances_id customers_id
car dans la table planning j'ai
planning_id relances_id customers_id
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 384
15 mai 2009 à 17:14
15 mai 2009 à 17:14
Bonjour,
Tu peux toujours rajouté une clé secondaire formée par les colonnes customer_id et planning_date dans ta table planning, cette clé sera non unique puisque tu peux avoir plusieurs enregistrements pour le même customer_id, cela devrait améliorer le temps nécessaire à ta mise à jour.
A plus
Tu peux toujours rajouté une clé secondaire formée par les colonnes customer_id et planning_date dans ta table planning, cette clé sera non unique puisque tu peux avoir plusieurs enregistrements pour le même customer_id, cela devrait améliorer le temps nécessaire à ta mise à jour.
A plus
sinifer
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
11
18 mai 2009 à 09:23
18 mai 2009 à 09:23
Hello, j'ai laissé tourner un bon moment mais le problème c'est que maintenant dans mon champs dates_inscription j'ai la même date et pas la date du champs planning - 2
sinifer
Messages postés
312
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 mars 2013
11
18 mai 2009 à 14:22
18 mai 2009 à 14:22
Merci Christounet,
ton scripte marche super bien ton aide ma été précieu merci beaucoup enffette après vérification le dernier message que j'ai mis tu peu le zapé bonne après midi
a plus
ton scripte marche super bien ton aide ma été précieu merci beaucoup enffette après vérification le dernier message que j'ai mis tu peu le zapé bonne après midi
a plus