Bonjour, je voudrais faire en une seule requête ceci :
j'ai ces deux tables : restaurants, villes.
dans la table restaurants, j'ai le champ id_ville qui renseigne la ville dans laquelle se situe le restaurant.
Je voudrais sélectionner le id_ville de tous mes restaurants renseignés afin de basculer vers ma table villes et faire un update de ce type : update villes v set v.commerces=1 where v.commerces=0;
En français, toutes les villes qui comportent au moins un restaurant doivent prendre 1 au champ "commerces" de leur table.
J'ai essayé plusieurs trucs :
Mais 0 enregistrement ne se trouve changé. Alors qu'il devrait y en avoir quelques uns.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 UPDATE villes v SET v.commerces=1 WHERE v.commerce=0 AND EXISTS (SELECT * FROM restaurants r WHERE r.id_ville=v.id);
(la 3e ligne est importante parce que si le champ est renseigné à 2 c'est que c'est un hôtel, et à ce moment là, on update pas.)
Merci
Partager