SQL : update avec JOIN + Count()
Résolu
le hollandais volant
Messages postés
4998
Date d'inscription
Statut
Membre
Dernière intervention
-
le hollandais volant Messages postés 4998 Date d'inscription Statut Membre Dernière intervention -
le hollandais volant Messages postés 4998 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- SQL : update avec JOIN + Count()
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Additions et multiplication dans des requêtes SQL ✓ - Forum MySQL
- Ora-00933: la commande sql ne se termine pas correctement ✓ - Forum Oracle
- Sql query download - Télécharger - Gestion de données
1 réponse
Finalement j'ai trouvé un code qui marche :
Notez que le join se fait après le ON sur :
c.article_id = a.id
Et que le where se fait sur ça :
articles.id = a.id
article.id et a.id ne sont pas identiques : le premier est créé par le UPDATE et le second par le SELECT.
Là était la subtilité.
Ce code fonctionne avec SQLite.
UPDATE articles SET nb_comments = (SELECT count(a.id) FROM articles a INNER JOIN commentaires c ON (c.article_id = a.id) WHERE articles.id = a.id GROUP BY a.id)
Notez que le join se fait après le ON sur :
c.article_id = a.id
Et que le where se fait sur ça :
articles.id = a.id
article.id et a.id ne sont pas identiques : le premier est créé par le UPDATE et le second par le SELECT.
Là était la subtilité.
Ce code fonctionne avec SQLite.
UPDATE articles SET nb_comments = (SELECT count(articles.id) FROM commentaires WHERE commentaires.article_id = articles.id)