{MySQL} Optimisation Requete
Fermé
Xandler
-
26 août 2009 à 13:17
moderno31 Messages postés 872 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 - 1 sept. 2009 à 11:27
moderno31 Messages postés 872 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 - 1 sept. 2009 à 11:27
A voir également:
- {MySQL} Optimisation Requete
- Optimisation pc - Accueil - Utilitaires
- Optimisation découpe panneau gratuit - Télécharger - Outils professionnels
- Mysql community server - Télécharger - Bases de données
- Optimisation windows 10 - Guide
- Démarrage d'android en cours optimisation de l'application - Forum HTC
7 réponses
moderno31
Messages postés
872
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
27 août 2009 à 05:50
27 août 2009 à 05:50
hello, déjà si tu veux optimiser utiliser des jointure inner ou left join pas çà AND b.booking = c.booking
ensuite as-tu essayé d'indexer ton champ f.wsstatus (pour faire ton like il vaudrait mieux)
ensuite as-tu essayé d'indexer ton champ f.wsstatus (pour faire ton like il vaudrait mieux)
sofbylka
Messages postés
8
Date d'inscription
lundi 20 juillet 2009
Statut
Membre
Dernière intervention
1 septembre 2009
27 août 2009 à 14:05
27 août 2009 à 14:05
aidez moi SVP:
j'ai créé 5 tables:
la première table (nom du personnel) est composée de deux champs (id_pers; Nom_pers)
les autres tables ont les mêmes champs ( id_action; nom_action; temps_action) et le nom de chaque table reprend le Nom_personne de la première table créée
Mon Problème:
je veux afficher dans un tableau (Résultat) pour chaque personne de ma première table la liste des actions qu'il a fait le temps pour chaque action... etc
en gros je veux affiché pour chaque ligne (Nom_personne) de ma première table les colonnes de la table correspendante
Merci pour votre aide
j'ai créé 5 tables:
la première table (nom du personnel) est composée de deux champs (id_pers; Nom_pers)
les autres tables ont les mêmes champs ( id_action; nom_action; temps_action) et le nom de chaque table reprend le Nom_personne de la première table créée
Mon Problème:
je veux afficher dans un tableau (Résultat) pour chaque personne de ma première table la liste des actions qu'il a fait le temps pour chaque action... etc
en gros je veux affiché pour chaque ligne (Nom_personne) de ma première table les colonnes de la table correspendante
Merci pour votre aide
moderno31
Messages postés
872
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
27 août 2009 à 14:10
27 août 2009 à 14:10
Tu as lu ma réponse au moins ?
Déjà je ne vois pas de lien entre les 2 tables dans la structure que tu avances.
Pour faire simple je voudrais voir le code SQL de structure des tables en question...
Parce que si j'ai bien compris, tu te baseras que table nom du personnel pour ainsi récupérer des infos dans table des actions.. non ?
Déjà je ne vois pas de lien entre les 2 tables dans la structure que tu avances.
Pour faire simple je voudrais voir le code SQL de structure des tables en question...
Parce que si j'ai bien compris, tu te baseras que table nom du personnel pour ainsi récupérer des infos dans table des actions.. non ?
sofbylka
Messages postés
8
Date d'inscription
lundi 20 juillet 2009
Statut
Membre
Dernière intervention
1 septembre 2009
27 août 2009 à 15:35
27 août 2009 à 15:35
je viens de lire ta réponse,
c'est exactement ce que je veux faire me basé sur nom du personnel pour pour récupérer les infos
Ps: je suis vraiment nouveau dans les base de données
Merci pour ton aide moderno
c'est exactement ce que je veux faire me basé sur nom du personnel pour pour récupérer les infos
Ps: je suis vraiment nouveau dans les base de données
Merci pour ton aide moderno
moderno31
Messages postés
872
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
27 août 2009 à 15:45
27 août 2009 à 15:45
ok d'acc
tu esq nouveau alors suis ce que je te dis :
Peux-tu stp me faire voir ce que tu as monté comme structure (struc de tables liées à ton souci) dans mysql.
Tu fé un export des tables (il me faut le code sql de création sans les données ou une copie d'écran)
Parce que avant de regarder coté programme déjà s'assurer que coté BD tout est nikel.
Please lol
tu esq nouveau alors suis ce que je te dis :
Peux-tu stp me faire voir ce que tu as monté comme structure (struc de tables liées à ton souci) dans mysql.
Tu fé un export des tables (il me faut le code sql de création sans les données ou une copie d'écran)
Parce que avant de regarder coté programme déjà s'assurer que coté BD tout est nikel.
Please lol
sofbylka
Messages postés
8
Date d'inscription
lundi 20 juillet 2009
Statut
Membre
Dernière intervention
1 septembre 2009
28 août 2009 à 10:48
28 août 2009 à 10:48
salut Moderno;
voila donc j'ai exporter la base espérant que cela va t'aider et encore Merci pour Ton aide
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- phpMyAdmin SQL Dump
-- version 3.1.1
-- https://www.phpmyadmin.net/
voila donc j'ai exporter la base espérant que cela va t'aider et encore Merci pour Ton aide
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- phpMyAdmin SQL Dump
-- version 3.1.1
-- https://www.phpmyadmin.net/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
moderno31
Messages postés
872
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
29 août 2009 à 19:47
29 août 2009 à 19:47
ouaw, c'est compliqué d'aider sur un forum..
Heuu, comment te dire.
Je constate que les tables malik, jean, et steeven ont la meme structure normal ?
Elles ont juste des données différentes.
Si tu veux lier toutes ces tables entre elles il te faut par exemple faire une table de lien (si tu as une multi-jointure de tables à faire).
Entre 2 tables tu t'assures que les Id contienent bien les mêmes données puis tu jointes par LEFT JOIN TABLE_A ON TABLE_A.ID = TABLE_B.ID
Attention aux jointures ternaires.
Qu'est ce que
champ = `DeviationAct` ?
table = `nompersonnels` ? --> On retrouve l'intitulé de tables !
Désolé de répondre si tard, avant j'ai pas pu.
Heuu, comment te dire.
Je constate que les tables malik, jean, et steeven ont la meme structure normal ?
Elles ont juste des données différentes.
Si tu veux lier toutes ces tables entre elles il te faut par exemple faire une table de lien (si tu as une multi-jointure de tables à faire).
Entre 2 tables tu t'assures que les Id contienent bien les mêmes données puis tu jointes par LEFT JOIN TABLE_A ON TABLE_A.ID = TABLE_B.ID
Attention aux jointures ternaires.
Qu'est ce que
champ = `DeviationAct` ?
table = `nompersonnels` ? --> On retrouve l'intitulé de tables !
Désolé de répondre si tard, avant j'ai pas pu.
sofbylka
Messages postés
8
Date d'inscription
lundi 20 juillet 2009
Statut
Membre
Dernière intervention
1 septembre 2009
31 août 2009 à 11:23
31 août 2009 à 11:23
salut moderno ça ne marche pas!!!!
dis moi y' a- t-il moyen avec mysql de mettre le même identifiant pour chaque table je m'explique par exemple pour la table malik toutes les actions auront le même ID (1); et pour la table steven je mets(2) .....etc comme ça avec une clause where ou left join il est plus facile de retrouver le résultat
Merci
dis moi y' a- t-il moyen avec mysql de mettre le même identifiant pour chaque table je m'explique par exemple pour la table malik toutes les actions auront le même ID (1); et pour la table steven je mets(2) .....etc comme ça avec une clause where ou left join il est plus facile de retrouver le résultat
Merci
moderno31
Messages postés
872
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
31 août 2009 à 14:40
31 août 2009 à 14:40
Hello hello,
honettement, je ne comprends plus ce que tu veux faire.
Ta structure est confuse, franchement elle me parle pas
L'identifiant est unique par ligne de table pas poour une table. Sauf besoins particuliers de gestion.
honettement, je ne comprends plus ce que tu veux faire.
Ta structure est confuse, franchement elle me parle pas
L'identifiant est unique par ligne de table pas poour une table. Sauf besoins particuliers de gestion.
sofbylka
Messages postés
8
Date d'inscription
lundi 20 juillet 2009
Statut
Membre
Dernière intervention
1 septembre 2009
1 sept. 2009 à 09:57
1 sept. 2009 à 09:57
oui je voulais dire un ID unique pour les lignes de la table, dis-moi est -il possible de faire un INNER JOIN ou un LEFT JOIN pour plusieurs tables en même temps si c'est oui peux tu Me dire comment l'écrire en fait j'ai fait un test avec INNER JOIN pour deux tables Ça marche, mais plus je ne sais pas comment faire Ça
moderno31
Messages postés
872
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
1 sept. 2009 à 11:27
1 sept. 2009 à 11:27
Ok, oui tu peux
Je fais un exemple avec 4 tables
Ventes (id_vente, id_client, id_produit, date_vente..)
Clients (id_client,id_rib, nom, prenom, ville, n°compte)
Type de produit(id_famille_produit,famille,date_creation..)
Produits(id_produit, Id_type_produit,designation, date achat)
Je veux connaitre la facture des commandes qu'on effectué mes clients en aout 2009 (faire apparaitre le nom, prénom, produit)
NB
Ventes est une table de production (source originale de l'information) on appelle ça une table de fait (indicateurs)
Toutes les autres sont des tables de dimension (références fixes) elles servent à compléter l'information source : tu viens d'apprendre quelques notions de décisionnel lol
Et voila
J'espère qu'il n'y a pas d'erreur.
Je fais un exemple avec 4 tables
Ventes (id_vente, id_client, id_produit, date_vente..)
Clients (id_client,id_rib, nom, prenom, ville, n°compte)
Type de produit(id_famille_produit,famille,date_creation..)
Produits(id_produit, Id_type_produit,designation, date achat)
Je veux connaitre la facture des commandes qu'on effectué mes clients en aout 2009 (faire apparaitre le nom, prénom, produit)
SELECT Ventes.id_vente,Clients.nom, Clients.prenom,Produits.designation FROM Ventes LEFT JOIN Clients ON Clients.id_client = Ventes.id_client LEFT JOIN Produits ON Produits.id_produit = Ventes.id_produit WHERE MONTH(Ventes.date_vente) = 8 AND YEAR(Ventes.date_vente) = 2009
NB
Ventes est une table de production (source originale de l'information) on appelle ça une table de fait (indicateurs)
Toutes les autres sont des tables de dimension (références fixes) elles servent à compléter l'information source : tu viens d'apprendre quelques notions de décisionnel lol
Et voila
J'espère qu'il n'y a pas d'erreur.