|
Bas de page | |
---|---|
Auteur | Sujet : Problème de requete SQL |
![]() Publicité | Posté le 06-06-2011 à 11:43:01 ![]() ![]() |
Oliiii | C'est le genre de resultats qu'on obtien quand il y a un produit cartesien qui traine quelque part (en gros il manque une ou plusieurs condition dans le Where qui reduisent le nombre de réponses).
Message édité par Oliiii le 06-06-2011 à 14:32:45 |
inoxis91 | C'est ce que j'ai fait mais avec des noms différents ma table message ce nomme tbl_mp ( je ne gére que des message priver)
|
inoxis91 |
Paulp ~, sweet ~ | Il faudrait faire :
|
Oliiii | C'est normal que le resultat soit la 2x, c'est a cause du OR.
|
inoxis91 | J'ai essayer et cela ne fonctionne pas |
Paulp ~, sweet ~ | Tu as essayé quoi ?
|
inoxis91 | Oui désolé je n'est pas été précis
|
Oliiii | C'est une requete pour SQL Server, il faut la "traduire" pour que ca fonctionne avec MySQL (ce que je ne sais pas faire). |
![]() Publicité | Posté le 07-06-2011 à 11:19:56 ![]() ![]() |
Paulp ~, sweet ~ | Cette erreur signifie que ta requête n'a pas aboutie, que $recherche_auteurs vaut false, et n'est donc pas un résultat mysql valide. Dans ce cas, deux options pour trouver le problème :
Message édité par Paulp le 07-06-2011 à 11:30:14 |
inoxis91 | Voici l'erreur :
|
Paulp ~, sweet ~ | Il faut mettre la partie d'affichage de l'erreur (if mysql_errno()){...}) après le mysql_query.
|
inoxis91 | A oui désolé ^^" Voici ce que ca ma ajouter : MySQL error 1248: Every derived table must have its own alias Et oui en effet ma requête est bien afficher a l'écran Voici l'affichage complet sur ma page :
SELECT DISTINCT id_correspondant FROM( (SELECT id_mp_from AS id_correspondant FROM tbl_mp WHERE id_mp_to ='1') UNION (SELECT id_mp_to FROM tbl_mp WHERE id_mp_from ='1') ) Message édité par inoxis91 le 07-06-2011 à 13:36:42 |
Paulp ~, sweet ~ | SELECT DISTINCT id_correspondant FROM( (SELECT id_mp_from AS id_correspondant FROM tbl_mp WHERE id_mp_to ='1') AS T1 UNION (SELECT id_mp_to FROM tbl_mp WHERE id_mp_from ='1') AS T2 )
|
inoxis91 | Je l'est traduit en Francais mais même avec la traduction...
|
Paulp ~, sweet ~ | Oups SELECT DISTINCT id_correspondant FROM(SELECT id_mp_from AS id_correspondant FROM tbl_mp WHERE id_mp_to ='1' UNION SELECT id_mp_to FROM tbl_mp WHERE id_mp_from ='1') alias; En fait, il veut que la table dérivée (donc le select ... union select ...) ait un alias, ce que j'ai rajouté Message édité par Paulp le 07-06-2011 à 14:30:06 |
inoxis91 | Super!!! sa fonctionne!!! J'ai un peut de mal à comprendre votre requête,
|
Paulp ~, sweet ~ | Décomposons :
On sélectionne les id_mp_from des messages destinés à l'utilisateur 1 La requête B est quasiment identique :
On sélectionne les id_mp_to des messages envoyés par l'utilisateur 1 La requête C est l'union de A et B :
Elle retourne donc la liste des ids des utilisateurs ayant envoyés un mp à l'utilisateur 1 ou reçu un mp de l'utilisateur 1 La requête finale est un select distinct sur C pour n'avoir chaque id qu'une seule fois.
Message édité par Paulp le 07-06-2011 à 14:49:18 |
inoxis91 | Ça vas beaucoup mieux avec des explications |
Sujets relatifs | |
---|---|
[RESOLU] problème requete SQL 2008 | Problème pour créer la requête SQL demandée |
Problème en PHP pour une requête SQL | problème de requête SQL simple |
Problème conditions requete SQL | Problème requete SQL : double et différent |
Problème requête UPDATE SQL | probleme requete Sql sur update clef primaire |
[SQL]Probleme requete avec LIMIT | |
Plus de sujets relatifs à : Problème de requete SQL |