Exporter donnée d'une table avec jointur sql
Résolu
sinifer
Messages postés
312
Date d'inscription
Statut
Membre
Dernière intervention
-
sinifer Messages postés 312 Date d'inscription Statut Membre Dernière intervention -
sinifer Messages postés 312 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un petit problème je dois prendre les données d'un champs lui enlevé deux jours et le remettre dans un autre champs le champs ou il est
est : planning_date
et ce qui ce trouve dans la table planning=>champs=>planning_date: est comme cela 2008-12-21 00:00:00
donc je doit prendre cette date là 2008-12-21 et lui enlever 2 jours pour
pouvoir le mettre dans la table customers=>champs=>customers_date_inscription
donc dans planning_date la date est 2008-12-21 je doi lui enlevé deux jours soit la date doit être 2008-12-19 quand on l'insère dans le champs customers_date_inscription
j'ai commencé ma requette afin de récupérer toute les dates de planning_date par id car le problème c'est que un id peut avoir plusieur planning_date différent et que je doit prendre la première par customers
ma requete:
voilà mon code mon problème est surtou a la fin dans mon WHERE customers_id es-ce que si je l'enlève sa va me mettre dans le champs customers_date_inscription toutes les date par customers normalement je doit fair une jointure pour que sa aille dans es_planning.customers_id = es_customers.customers_id mais comme ma requette est formé je sais pas trop ou mettre cette jointure donc j'ai fait comme sa:
donc si quelqu'un peu m'aider ce serait gentille merci
j'ai un petit problème je dois prendre les données d'un champs lui enlevé deux jours et le remettre dans un autre champs le champs ou il est
est : planning_date
et ce qui ce trouve dans la table planning=>champs=>planning_date: est comme cela 2008-12-21 00:00:00
donc je doit prendre cette date là 2008-12-21 et lui enlever 2 jours pour
pouvoir le mettre dans la table customers=>champs=>customers_date_inscription
donc dans planning_date la date est 2008-12-21 je doi lui enlevé deux jours soit la date doit être 2008-12-19 quand on l'insère dans le champs customers_date_inscription
j'ai commencé ma requette afin de récupérer toute les dates de planning_date par id car le problème c'est que un id peut avoir plusieur planning_date différent et que je doit prendre la première par customers
ma requete:
UPDATE customers SET customers_date_inscription = DATE_SUB( ( SELECT MIN(planning_date) FROM es_planning WHERE planning_type='gratuite' ), 'INTERVAL 2 DAY') WHERE customers_id
voilà mon code mon problème est surtou a la fin dans mon WHERE customers_id es-ce que si je l'enlève sa va me mettre dans le champs customers_date_inscription toutes les date par customers normalement je doit fair une jointure pour que sa aille dans es_planning.customers_id = es_customers.customers_id mais comme ma requette est formé je sais pas trop ou mettre cette jointure donc j'ai fait comme sa:
UPDATE es_customers SET cu.customers_date_inscription = DATE_SUB( ( SELECT MIN(pl.planning_date) FROM es_planning pl, es_customers cu WHERE pl.planning_type='gratuite' ), 'INTERVAL 2 DAY') WHERE cu.customers_id = pl.customers_id
donc si quelqu'un peu m'aider ce serait gentille merci
A voir également:
- Exporter donnée d'une table avec jointur sql
- Table ascii - Guide
- Table des matières word - Guide
- Exporter favoris chrome - Guide
- Exporter conversation sms android - Guide
- Exporter favoris firefox - Guide
14 réponses
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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
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
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 ???
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
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