Les requêtes imbriquées c’est (parfois) le pied

Publié dans SQL | Marqué avec ,
Share

J’ai une table annonce1 contenant 10 000 tuples, et une autre annonce2 qui en contient aussi 10 000. Tous les tuples sont différents. Le but ? Fusionner ces 2 tables. Export/Import classique créé des problèmes de Primary Key qui se dupliquent (mon ID est en auto_increment).
Moralité :

INSERT INTO annonce (ann_surface, ann_prix)
	SELECT ann_surface, ann_prix
	FROM annonce2
	WHERE ann_surface>150 AND ann_ville!=0;

Une petite requête SQL imbriquée (embedded) et pof le tour est joué !
Deux choses importantes à remarquer :

  • La syntaxe : le VALUES n’apparait pas ici. (moi je m’étais fait avoir)
  • Inutile de préciser de préfixes même si le champ des tables ont le même nom. D’ailleurs j’ai testé avec annonce1 a1 (a1.ann_surface, ... et cela n’a pas fonctionné. J’en déduis que les préfixes doivent être interdit avec la commande INSERT.

La doc MySQL n’est pas avare à propos de la commande INSERT, pas plus que les commentaires. Profitons-en !

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*