Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Défit pour un pro [ MySQL / Requêtes ] (zazadec)

lundi 21 janvier 2008 à 23:34:05 | Défit pour un pro

zazadec

Question de se compliquer la vie, je dois reprendre un site avec une bdd déjà existante... bref vous avez compris j'ai pas le choix.

2 tables T1 et T2 avec un 'id' en commun (ces 2 champs 'id' sont en INDEX)
Plusieurs champs (au total 30) dont un dans chaque table qui doit normalement me simplifier la vie, et me virer les enregistrements non voulus (puisque index). Appelons les x et y
Comment relier les 2 select pour ne faire qu'une seule requête.
 SELECT id, x, a, b FROM T1 WHERE x = "";
 SELECT id, y, c, d FROM T2 WHERE y = "";

J'ai essayé
SELECT T1.id, T1.a, T1.b, T2.c, T2.d FROM T1, T2 WHERE T1.id = T2.id AND T1.id = "123" AND T1.x = "" AND T2.y = "" GROUP BY T1.id
Mais il me selectionne a chaque fois le premier champ a, b, c, ou d qu'il rencontre et pas forcement celui correspondant au clause where.

Je doute. Je suis au fond du trou , j'en peux plus. Un peu d'aide ? SVP
Pour vous simplifier la compréhension, je ne vous dit pas que j'ai en fait 3 tables et 30 champs par table.

zazadec

mardi 22 janvier 2008 à 13:13:09 | Re : Défit pour un pro

KenZara

Bonjour,

Je le trouve un peu bizarre ton problème, à priori ta requête te permettra de récupérer (a,b,c et d) se trouvant dans les deux tables T1 et T2 avec l'identifiant de T1 se trouvant dans T2 et qui équivaut 123. Ainsi que x et y qui sont vides. Est ce ce que tu as dans ton résultat? Peux tu nous donner un exemple de tes deux tables et le résultat de ta requête pour mieux visualiser le soucis..

Kenza

mardi 22 janvier 2008 à 23:11:51 | Re : Défit pour un pro

zazadec

Mon problème vient du fait que le premier enregistrement lu est retenu. C'est à dire que mon moteur SQL trouve bien des valeurs pour a b c d mais ce n'est pas celle voulues.
Disons l'exemple suivant
-pour T1 les valeurs suivantes
id01=123, x01=5, a=a01, b=b01,
id11=123, x11=6, a=a11, b=b11,
id21=123, x21='', a=a21, b=b21,
-pour T2 les valeurs suivantes
id02=123, x02=7, c=c02, d=d02,
id12=123, x12=8, c=c12, d=d12,
id22=123, x22='', c=c22, d=d22,

ma requete SELECT T1.id, T1.a, T1.b, T2.c, T2.d FROM T1, T2 WHERE T1.id = T2.id AND T1.id = "123" AND T1.x = "" AND T2.y = "" GROUP BY T1.id affiche le résultat suivant
id=123
a=a01
b=b01
c=c02
d=d02

Comme tu peux le comprendre j'ai essayé de transcrire ma vrai requete. Mais le résultat est là !!!


zazadec

samedi 28 juin 2008 à 00:29:36 | Re : Défit pour un pro

Farfadh

Après vérification, la requête que tu donnes en exemple fonctionne correctement et ne donne pas les résultats que tu nous fournis. Ton problème ne vient pas de sa structure, mais d'un oubli dans ton vrai code, un détail auquel tu n'as pas pensé à priori, ou éventuellement d'un bug de (ta version de) MySQL qui serait incapable de traiter ta requête correctement avec les champs que tu utilises réellement.

La prochaine fois, teste ton exemple avant d'affirmer qu'il se comporte de telle ou telle façon, je perdu du temps à le faire à ta place et je n'apprécie pas du tout.

Si tu cherches encore d'où vient ton problème, envoie-nous un exemple probant.

lundi 30 juin 2008 à 10:43:15 | Re : Défit pour un pro

KenZara

Réponse acceptée !
Bonjour Farfadh

Ce qui m'étonne dans ta réponse, est non seulement sa dureté, mais que la question a été posé 5 mois auparavant! (La question a été posée le 21/01/2008 23:34:05 et ta réponse est le 28/06/2008 00:29:36) Donc j'imagine que la personne a non seulement fini son test, mais il a vachement avancé.

"je perdu du temps à le faire à ta place et je n'apprécie pas du tout." <-- Ok!

Kenza




lundi 30 juin 2008 à 13:25:33 | Re : Défit pour un pro

zazadec

Réponse acceptée !
Merci KenZara pour ton soutien.
En effet vu l'antériorité du post, j'ai un peu avancé, voir je ne me souvenais plus de ce post. Donc à priori j'ai résolu mon pb.
Désolé Farfadth de t'avoir fait perdre ton ton qui a priori était précieux.

De mémoire, j'ai fait plusieurs requetes SQL avec mis en variables des premiers résultats et utilisation de ces variables pour les suivantes.

Merci de t'etre pencher sur mon pb

zazadec



Cette discussion est classé dans : t1, select, id, t2, where


Répondre à ce message

Sujets en rapport avec ce message

Resultat incompréhensible [ par JALEO WAHRANI ] Bonjour, j'ai une base avec 2 tables: 'perso et client', perso a pour colonnes:id, prop, etatétat vaut 'Y' si on effectue un suivi, sinon (par défaut) Requete et jointure [ par jobijobar ] Re-,bon dans un précédent post j'avais partagé avec vous mon horrible requête, pour ceux qui n'ont pas eu le grand malheur de la voir, c'était :SELECT Recherche de texte [ par jobijobar ] Bonjour à tous, j'ai un problème lors de l'execution d'un requete.Table t1 : id, text1, text2, text3, text4, text5Table t2 : id, id2, field1, field2, Problème de select multiples dans plusieurs tables [ par superseb801 ] bonjour, J'ai un problème, je voudrais faire une requête sur plusieurs tables en même temps (3 pour être plus précis), et avec d'autres SELECT dans le Optimisation requete [ par citt ] Bonjour,Je suis en train d'optimiser des requêtes et je me demande qu'elle manière et la plus rapide.Voici ma table j'arrive pas a etablir un select [ par noumian ] Bonjour, jdois effectuer un select.ce que j'ai : 2 tables EVENT(event_id,event_name)ACTION(action_id,event_id,dept_id)ce que je veux :jveux recuperer Where variable [ par Yxion ] Bonjour,J'aimerais savoir comment faire un where variable, c'est à dire que lorsque les paramètres de la procédure stockée ne sont pas remplit, les co requete jointure conditionnelle [ par floxone ] Salut, J'ai besoin de faire une requête de ce genre s'il vous plaît : SELECT SUM (v1 * (t2.v2+t2.v3+t3.v4) / v5)FROM table1 t1, table2 t2WHERE t1. Probleme avec Sybase [ par romainbisson ] J'essaie cette requete mais sans reussite, je souhaite mettre a jour (UPDATE) les champs C1, C2 et C3 de la table T1 les lignes que recucupere la sous Supprimer des doublons dans SQL serveur [ par henri38 ] Bonjour à tous,J'ai utiliser une source trouvée dans ce site mais je n'arrive pas à la faire marcher.Je cherche à deleter des doublons dans ma baseLa


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.