Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2011, 12h25   #1
Membre chevronné
 
Inscription : août 2010
Messages : 416
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 416
Points : 732
Points : 732
Par défaut Problème d'extraction de valeurs de plusieurs tables

Bonjour, j'ai tenté d'extraire des valeurs de plusieurs tables. Voici ma requête :
Code :
1
2
3
4
 
SELECT TABLE.valeur,table1.valeur,table2.valeur 
FROM TABLE,table1,table2 
WHERE (TABLE.date='now');
Mais j'ai un grand problème , j'ai des valeurs qui se répètent plusieurs fois dans la même colonne, comme on le voit ici.


Je dois essayer ces valeurs pour tracer des courbes dans un même graphe
marouene_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/06/2011, 12h31   #2
Membre chevronné
 
Inscription : août 2010
Messages : 416
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 416
Points : 732
Points : 732
Je pense que le problème est du au fait que il n'ya pas le meme nombre de valeur dans les deux tables non ? comment remmedier à ca !!
marouene_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/06/2011, 13h09   #3
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 440
Points : 6 440
Bonjour,

Le problème vient du fait que la requête n'est pas bonne.
Tu fais un produit cartésien du contenu de toutes les tables...
Un peu de lecture sur les jointures s'impose : http://sqlpro.developpez.com/cours/sqlaz/jointures/

Autre remarque : il est déconseiller ne nommer une table TABLE, vu que c'est un mot réservé du SQL.
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/06/2011, 22h50   #4
Membre chevronné
 
Inscription : août 2010
Messages : 416
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 416
Points : 732
Points : 732
Merci : )
Mais le problème c'est que il n'ya pas un lien entre mes tables pour faire une jointure externe, juste un champ date en commun, mais qui ne contient pas forcément les memes valeurs, hors moi je dois extraire toutes les valeurs des trois tables pour les dessiner en utilisant Jfreechart
marouene_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/06/2011, 08h56   #5
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 440
Points : 6 440
Les 3 tables ont-elles la même structure ?
Pour éviter le produit cartésien mais tout extraire en une seule requête, tu peux faire une requête sur chaque table et réunir les 3 requêtes par une union :
Code :
1
2
3
4
5
6
7
8
SELECT champ1_1, champ1_2, champ1_3
FROM table1
UNION ALL
SELECT champ2_1, champ2_2, champ2_3
FROM table2
UNION ALL
SELECT champ3_1, champ3_2, champ3_3
FROM table3
Attention, les champs de chaque requête doivent être de même type pour que ça fonctionne.
Si jamais tu ne veux pas d'éventuels doublons entre tables, remplace UNION ALL par UNION.
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/06/2011, 17h06   #6
Membre chevronné
 
Inscription : août 2010
Messages : 416
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 416
Points : 732
Points : 732
les trois tables ont la meme structure oui
( champ date, champ heure, champ valeur)
Sinon comment distinguer les valeurs prises par la table 1 de celle prise par la table 2 ...
Si par exemple j'ai pas le meme nombre de valeurs dans ma table ca causera un probleme ?
marouene_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/06/2011, 17h10   #7
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Saluton,
Par exemple comme ça
Code sql :
1
2
3
4
5
6
7
8
SELECT champ1_1, champ1_2, champ1_3,"table1" AS prov
FROM table1
UNION ALL
SELECT champ2_1, champ2_2, champ2_3,"table2" AS prov
FROM table2
UNION ALL
SELECT champ3_1, champ3_2, champ3_3,"table3" AS prov
FROM table3
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/06/2011, 09h52   #8
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 440
Points : 6 440
Ce qui est dans la : http://mysql.developpez.com/faq/?pag..._table_origine
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 16h48   #9
Membre chevronné
 
Inscription : août 2010
Messages : 416
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 416
Points : 732
Points : 732
A prioris ca marche, j'ai des valeurs succécives (table1, table2, table3), mais je n'arrive pas à extraire les valeurs de table1, les valeurs de table2 et les valeurs de table3...
j'ai besoin de chaque série de valeur indépendamment des autres
marouene_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/06/2011, 16h52   #10
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Il suffit pourtant de filtrer sur la valeur de la colonne prov
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 02h13   #11
Membre chevronné
 
Inscription : août 2010
Messages : 416
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 416
Points : 732
Points : 732
j'ai essayé ca,enfet mon probleme c'est que je dois séparer les résultats de la requete et stocker chacune dans une variable ....
j'essaye encore, voila enfet leproblème

http://www.developpez.net/forums/d10...es-jfreechart/
marouene_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/06/2011, 08h49   #12
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Comme tout cela n'a pas l'air très abouti côté java et servlet non plus, je m'interroge :
Pourquoi fusionner les résultats avec une requête UNION si c'est pour détricoter cela ensuite, autant faire 3 requêtes, non ?
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 11h01   #13
Membre chevronné
 
Inscription : août 2010
Messages : 416
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 416
Points : 732
Points : 732
Citation:
Envoyé par Maljuna Kris Voir le message
Comme tout cela n'a pas l'air très abouti côté java et servlet non plus, je m'interroge :
Pourquoi fusionner les résultats avec une requête UNION si c'est pour détricoter cela ensuite, autant faire 3 requêtes, non ?
Exactement, deja je suis parti de la, j'ai fait 3 requetes, puis à partir des valeurs de chaque requetes, je voulais tracer les courbes.

Sauf que vue que je dois tracer les trois courbes dans un meme graphe, le probleme se pose lorsque les trois requetes ne retournent pas le meme nombre de valeurs.


req1-------> 100 valeurs
req2-------> 110valeurs
req3------->120 valeurs.

C'est la qu'il y'a un probleme et la courbe ne s'affiche pas
marouene_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/06/2011, 11h35   #14
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 007
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 007
Points : 18 278
Points : 18 278
Envoyer un message via MSN à CinePhil
Si je comprends bien, les 3 tables ont une colonne (et pas champ ! ) contenant une date. Si tu veux que les trois requêtes retournent le même nombre de lignes, il faut commencer par faire une table temporaire qui va extraire toutes les dates renvoyées par les trois requêtes :
Code :
1
2
3
4
5
6
7
8
9
CREATE TEMPORARY TABLE toutes_dates
SELECT col_date
FROM table1
UNION
SELECT col_date
FROM table2
UNION
SELECT col_date
FROM table3;
Puis dans la même transaction, tu lances tes trois requêtes en faisant une jointure externe à partir de la table temporaire :
Code :
1
2
3
SELECT tmp.col_date, t1.col1, t1.col2, t1.col3
FROM toutes_dates tmp
LEFT OUTER JOIN table1 t1 ON t1.col_date = tmp.col_date
Les dates pour lesquelles t1 n'a pas de valeur afficheront des NULL dans col1, col2 et col3 et tes trois requêtes auront le même nombre de lignes qui est le nombre de dates de la table temporaire.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 10h00   #15
Membre chevronné
 
Inscription : août 2010
Messages : 416
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 416
Points : 732
Points : 732
je vais tester ca ...dois - je après la supprimer ou bien la suppression se fait automatiquement ?
marouene_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/06/2011, 10h09   #16
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 007
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 007
Points : 18 278
Points : 18 278
Envoyer un message via MSN à CinePhil
La table temporaire se supprime automatiquement à la fin de la transaction je crois. À vérifier.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 10h33   #17
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 440
Points : 6 440
Une table temporaire se supprime toute seule à la fin de la connexion.
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h52.


 
 
 
 
Partenaires

Hébergement Web