SELECT sur plusieurs tables à la fois - SQL/NoSQL - Programmation
Marsh Posté le 09-11-2005 à 20:36:54
si tes deux tables ont le meme champ, tu peux faire 
 
SELECT champ FROM table1 
UNION 
SELECT champ FROM table2; 
 
je sais plus si tu auras des doublons ou pas
Marsh Posté le 10-11-2005 à 08:26:39
La syntaxe exacte est celle ci : 
 
| Code : 
 | 
 
Marsh Posté le 10-11-2005 à 09:03:21
| TheRom_S a écrit : si tes deux tables ont le meme champ, tu peux faire  | 
 
le UNION dedoublonne 
Marsh Posté le 10-11-2005 à 16:20:13
bjr 
 
a tous merci pour vos reponse, whyme je ne comprend pas cette syntaxe. Le fait d'avoir un truc du genre SELECT FROM SELECT je pige pas. 
 
je voudrais ça : 
 
SELECT `debit`,`reference`,`mois`,SUM(quantite) INTO OUTFILE 'resultat.csv' FROM `semaine01` WHERE `reference` LIKE '52136%' OR `reference` LIKE (etc...) GROUP BY `mois`,`reference`,`debit` 
UNION 
SELECT `debit`,`reference`,`mois`,SUM(quantite) INTO OUTFILE 'resultat.csv' FROM `semaine02` WHERE `refernce` LIKE '52136%' OR `reference` LIKE (etc...) GROUP BY `mois`,`reference`,`debit` 
UNION 
(etc) 
 
et ben ça marche paaaaas   
  
 
je précise que chaque SELECT lancé tout seul marche très bien. Il me bloque a la 2e ligne reliée par UNION 
 
sur http://dev.mysql.com/doc/refman/5.0/fr/union.html 
 
je lis que UNION est implémentée en MySQL 4.0.0. 
 
je me dis : aurais je une vieille version ? 
 
je vois sur l'écran d'accueil : 
Bienvenue à phpMyAdmin 2.2.6 
MySQL 3.23.49-max-nt sur le serveur localhost - utilisateur : root@localhost 
 
 
Je charge et installe la version 5.0, redemarre mais ça le fais pas plus 
 
et ça m'affiche toujours MySQL 3.23.49- 
 
bouuuuh
Marsh Posté le 10-11-2005 à 16:24:13
| Gilgamesh d'Uruk a écrit : bjr  | 
 
 
Essayes ca : 
 
SELECT `debit`,`reference`,`mois`,SUM(quantite) INTO OUTFILE 'resultat.csv' FROM `semaine01` WHERE `reference` LIKE '52136%' OR `reference` LIKE (etc...)  
UNION  
SELECT `debit`,`reference`,`mois`,SUM(quantite) INTO OUTFILE 'resultat.csv' FROM `semaine02` WHERE `refernce` LIKE '52136%' OR `reference` LIKE (etc...)  
 
GROUP BY `mois`,`reference`,`debit`  
Marsh Posté le 10-11-2005 à 17:01:06
| Tamahome a écrit : Essayes ca :  | 
 
 
 
Merci méééé non ça marche pas et les UNION les plus simple non plus genre SELECT 3 UNION SELECTION  -2 ça me renvoit un something wrong. Quasiment sur que c'est un pb de version. MySQL ver 5 est installée mais l'appli tourne sur une ancienne version (qui n'apparait pas dans le installer/desinstakller du panneau de config grrrrr) 
 
Sinon, la bonne syntaxe -en principe si j'en crois les tutoriaux- c'est de mettre le GROUP BY "dans" le SELECT 
 
a+
Marsh Posté le 10-11-2005 à 17:43:37
Boooooon ! C'était bien un pb de version. J'ai résinstallé EasyPHP (ver 1.7) et ça tourne sur une version SQL 4.x donc qui accepte ma syntaxe.  
 
 
Donc pour info ça ressemble à ça : 
 
SELECT `debit`,`reference`,`mois`,SUM(quantite) FROM `semaine01` WHERE `reference` LIKE '98754%' OR `reference` LIKE (etc...) GROUP BY `mois`,`reference`,`debit` 
UNION  
SELECT `debit`,`reference`,`mois`,SUM(quantite) FROM `semaine02` WHERE `reference` LIKE '98754%' OR `reference` LIKE (etc...) GROUP BY `mois`,`reference`,`debit` 
UNION 
 
etc 
 
SELECT `debit`,`reference`,`mois`,SUM(quantite) INTO OUTFILE 'resultat.csv' FROM `semainen` WHERE `reference` LIKE '98754%' OR `reference` LIKE (etc...) GROUP BY `mois`,`reference`,`debit` 
 
le into outfile est bien a mettre dans le dernier SELECT 
 
a+
Marsh Posté le 09-11-2005 à 18:56:18
Bonjour, est il possible de faire un SELECT sur plusieurs tables a la fois dans la même requete, dans l'idée, qqchose comme ça (qui ne marche pas) :
SELECT DISTINCT debit INTO OUTFILE "debit.csv" FROM semaine39_total OR FROM semaine38_total
ou alors (ce qui reviendrait sensiblement au même pour moi), de continuer le fichier "OUTFILE" au lieu d'en créer a chaque fois un nouveau dans la requete suivante.
merci