MySQL, jointure qui fait planter MySQL .... [RESOLU]

MySQL, jointure qui fait planter MySQL .... [RESOLU] - SQL/NoSQL - Programmation

Marsh Posté le 04-03-2003 à 23:07:25    

voici la requête incriminée, je commence avec les jointures, j'ai donc surement fait une erreur, mais quoi ?

Code :
  1. select lfr_topics.ID_TOPIC, ID_SONDAGE, TITRE, ICONE, lfr_topics.ID_DERNIER_POST,
  2. lfr_utilisateurs1.PSEUDO as CREATEUR, ANONYME_AUTEUR, lfr_utilisateurs2.PSEUDO as DERNIER_POSTEUR, ANONYME_POSTEUR, ETAT_TOPIC, lfr_topics.NB_POSTS,
  3. DATE_FORMAT(DATE_POST,'%d/%m/%Y à %H:%i:%s') AS DATE_TOPIC,
  4. lfr_topics_vus.ID_UTILISATEUR AS IS_TOPIC_VU
  5. from lfr_topics, lfr_utilisateurs as lfr_utilisateurs1, lfr_utilisateurs as lfr_utilisateurs2, lfr_posts
  6. LEFT JOIN lfr_topics_vus
  7. ON lfr_topics_vus.ID_UTILISATEUR=2
  8. and lfr_topics_vus.ID_TOPIC=lfr_topics.ID_TOPIC and lfr_topics.ID_FORUM=1 and lfr_topics.ID_DERNIER_POST=lfr_posts.ID_POST and lfr_utilisateurs2.ID_UTILISATEUR=lfr_posts.ID_POSTEUR and lfr_utilisateurs1.ID_UTILISATEUR=lfr_topics.ID_AUTEUR order by ID_DERNIER_POST DESC limit 0,15


Message édité par THE REAL SMILEY le 05-03-2003 à 00:15:32
Reply

Marsh Posté le 04-03-2003 à 23:07:25   

Reply

Marsh Posté le 04-03-2003 à 23:14:42    

THE REAL SMILEY a écrit :

voici la requête incriminée, je commence avec les jointures, j'ai donc surement fait une erreur, mais quoi ?

Code :
  1. LEFT JOIN lfr_topics_vus ON lfr_topics_vus.ID_UTILISATEUR=2




 
:heink:


Message édité par HappyHarry le 04-03-2003 à 23:16:01
Reply

Marsh Posté le 04-03-2003 à 23:21:34    

Et ?
je suis désolé, mais tu m'aides pas beaucoup là :??:

Reply

Marsh Posté le 04-03-2003 à 23:29:20    

THE REAL SMILEY a écrit :

Et ?
je suis désolé, mais tu m'aides pas beaucoup là :??:  


 
EDIT : non rien :whistle:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 04-03-2003 à 23:29:51    

le =2 a la fin me choque un peu
 
je ne sais pas si tu peux faire une restriction en meme temps qu'une jointure

Reply

Marsh Posté le 04-03-2003 à 23:33:08    

HappyHarry a écrit :

le =2 a la fin me choque un peu
 
je ne sais pas si tu peux faire une restriction en meme temps qu'une jointure


à priori, on peux:
Exemple: ( tiré de http://www.en2i.org/bdd/bdd43.htm)

Code :
  1. mysql> SELECT o.id_ouvr, o.nom_ouvr, f.nom_fourn
  2. FROM ouvrages as o LEFT JOIN fournisseurs as f
  3. ON ((o.id_fourn=f.id_fourn)
  4. AND (nom_fourn = 'Les livres à gogo'));

Reply

Marsh Posté le 04-03-2003 à 23:45:58    

THE REAL SMILEY a écrit :


à priori, on peux:


Bin tente de mettre des parenthèses, p'têt [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 04-03-2003 à 23:47:48    

Taiche a écrit :


Bin tente de mettre des parenthèses, p'têt [:spamafote]

J'ai déjà essayé, pas mieux :/

Reply

Marsh Posté le 04-03-2003 à 23:48:27    

THE REAL SMILEY a écrit :

J'ai déjà essayé, pas mieux :/


Même des parenthèses autour de tous tes AND, comme dans l'exemple ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 04-03-2003 à 23:50:47    

Taiche a écrit :


Même des parenthèses autour de tous tes AND, comme dans l'exemple ?


oui oui, ma nouvelle requête:

Code :
  1. select lfr_topics.ID_TOPIC, ID_SONDAGE, TITRE, ICONE, lfr_topics.ID_DERNIER_POST, lfr_utilisateurs1.PSEUDO as CREATEUR, ANONYME_AUTEUR, lfr_utilisateurs2.PSEUDO as DERNIER_POSTEUR, ANONYME_POSTEUR, ETAT_TOPIC, lfr_topics.NB_POSTS, DATE_FORMAT(DATE_POST,'%d/%m/%Y à %H:%i:%s') AS DATE_TOPIC, lfr_topics_vus.ID_UTILISATEUR AS IS_TOPIC_VU from lfr_topics, lfr_utilisateurs as lfr_utilisateurs1, lfr_utilisateurs as lfr_utilisateurs2, lfr_posts LEFT JOIN lfr_topics_vus ON ((lfr_topics_vus.ID_TOPIC=lfr_topics.ID_TOPIC) and (lfr_topics_vus.ID_UTILISATEUR=2 and lfr_topics.ID_FORUM=1 and lfr_topics.ID_DERNIER_POST=lfr_posts.ID_POST and lfr_utilisateurs2.ID_UTILISATEUR=lfr_posts.ID_POSTEUR and lfr_utilisateurs1.ID_UTILISATEUR=lfr_topics.ID_AUTEUR)) order by ID_DERNIER_POST DESC limit 0,15

Reply

Marsh Posté le 04-03-2003 à 23:50:47   

Reply

Marsh Posté le 04-03-2003 à 23:51:37    

THE REAL SMILEY a écrit :


à priori, on peux:
Exemple: ( tiré de http://www.en2i.org/bdd/bdd43.htm)

Code :
  1. mysql> SELECT o.id_ouvr, o.nom_ouvr, f.nom_fourn
  2. FROM ouvrages as o LEFT JOIN fournisseurs as f
  3. ON ((o.id_fourn=f.id_fourn)
  4. AND (nom_fourn = 'Les livres à gogo'));




 
euh y a une legere différence entre l'exemple, avec lequel je suis d'accord, et l'extrait de ta requete que j'ai quoté ...
tu devrais trouver tout seul

Reply

Marsh Posté le 04-03-2003 à 23:58:08    

HappyHarry a écrit :


 
euh y a une legere différence entre l'exemple, avec lequel je suis d'accord, et l'extrait de ta requete que j'ai quoté ...
tu devrais trouver tout seul

Cette légère différence, je ne l'aurais pas corrigé dans ma deuxième requete, il me semble non ?

Reply

Marsh Posté le 05-03-2003 à 00:12:08    

THE REAL SMILEY a écrit :

Cette légère différence, je ne l'aurais pas corrigé dans ma deuxième requete, il me semble non ?


 
c bien ce que je disais, dans la premiere ca merdait :sarcastic:
 
par contre si tu nous disait en quoi ca plante et ce que tu veux faire exactement, ca serait plus pratique ...

Reply

Marsh Posté le 05-03-2003 à 00:15:14    

HappyHarry a écrit :


 
c bien ce que je disais, dans la premiere ca merdait :sarcastic:
 
par contre si tu nous disait en quoi ca plante et ce que tu veux faire exactement, ca serait plus pratique ...


En fait ça y est, j'ai trouvé, j'avais un peu abusé sur la clause ON, j'ai rajouté un WHERE, et maintenant, ca fonctionne: (désolé pour la mise en forme, je suis pas motivé)

Code :
  1. select lfr_topics.ID_TOPIC, ID_SONDAGE, TITRE, ICONE, lfr_topics.ID_DERNIER_POST, lfr_utilisateurs1.PSEUDO as CREATEUR, ANONYME_AUTEUR, lfr_utilisateurs2.PSEUDO as DERNIER_POSTEUR, ANONYME_POSTEUR, ETAT_TOPIC, lfr_topics.NB_POSTS, DATE_FORMAT(DATE_POST,'%d/%m/%Y à %H:%i:%s') AS DATE_TOPIC, lfr_topics_vus.ID_UTILISATEUR AS IS_TOPIC_VU from lfr_topics, lfr_utilisateurs as lfr_utilisateurs1, lfr_utilisateurs as lfr_utilisateurs2, lfr_posts LEFT JOIN lfr_topics_vus ON (lfr_topics.ID_TOPIC=lfr_topics_vus.ID_TOPIC and lfr_topics_vus.ID_UTILISATEUR='2') WHERE ( lfr_topics.ID_FORUM=1 and lfr_topics.ID_DERNIER_POST=lfr_posts.ID_POST and lfr_utilisateurs2.ID_UTILISATEUR=lfr_posts.ID_POSTEUR and lfr_utilisateurs1.ID_UTILISATEUR=lfr_topics.ID_AUTEUR) order by ID_DERNIER_POST DESC limit 0,15

Reply

Marsh Posté le 05-03-2003 à 00:15:53    

et si tu pouvais formater ta requete de maniere à ce qu'elle soit lisible aussi :heink: comment tu fais pour lire une bouse pareille? :/


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 05-03-2003 à 22:56:06    

the real moins moins a écrit :

et si tu pouvais formater ta requete de maniere à ce qu'elle soit lisible aussi :heink: comment tu fais pour lire une bouse pareille? :/


Pour lire une bouze pareille, je la passe dans phpMyAdmin 2.4.0 et il me la met en couleur :o

Reply

Marsh Posté le 05-03-2003 à 23:04:48    

THE REAL SMILEY a écrit :


Pour lire une bouze pareille, je la passe dans phpMyAdmin 2.4.0 et il me la met en couleur :o  

:pfff:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 05-03-2003 à 23:51:28    

utilises des alias pour tes requetes, c'est illisible là

Reply

Marsh Posté le 05-03-2003 à 23:57:11    

Skylight a écrit :

utilises des alias pour tes requetes, c'est illisible là

ben surtout un peu de retours lignes et d'indentation ça ferait de tord a personne :D


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed