[Mysql] pb DELETE

pb DELETE [Mysql] - SQL/NoSQL - Programmation

Marsh Posté le 01-02-2003 à 11:51:28    

J'ai cette requete qui fonctionne bien :
SELECT visu.v_an, annonces.an_id FROM visu LEFT JOIN annonces ON visu.v_an = annonces.an_id WHERE annonces.an_id IS NULL
 
Maintenant je veux faire la même chose avec un DELETE pour supprimer tous les résultats mais bien sûr ça marche pas. y'a quoi comme solution ? (compatible mysql 3.xx !)

Reply

Marsh Posté le 01-02-2003 à 11:51:28   

Reply

Marsh Posté le 01-02-2003 à 11:57:57    

là faut faire deux requêtes :
 
DELETE FROM visu WHERE v_an IS NULL
DELETE FROM annonces WHERE an_id IS NULL


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 01-02-2003 à 12:08:36    

euh, non ça fait pas du tout la même chose, la jointure elle est pas là pour faire jolie  :D

Reply

Marsh Posté le 01-02-2003 à 13:40:20    

ta jointure se fait sur la clause visu.v_an = annonces.an_id
et ton WHERE sur annonces.an_id IS NULL  
 
j'en déduis donc que v_an ET an_id sont NULL dont a effacer dans chacune des tables
 
donc il faut bien effacer chaque ligne des deux tables ou le champ est null  :??:  :??:  
 
de toute façon il faudra forcément passer par deux requêtes DELETE, les foreign keys sont pas supportées sans INNODB


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 01-02-2003 à 13:42:59    

non, c'est pas exactement ça.
une autre version de ma requete plus claire (mais avec une sous requete) :
SELECT * FROM visu WHERE visu.v_an NOT IN (SELECT DISTINCT an_id FROM annonces);

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed