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