[MySQL] Requête impossible ?

Requête impossible ? [MySQL] - Programmation

Marsh Posté le 21-02-2002 à 18:36:53    

Salut tout le monde :)
 
Voilà mon problème :
J'ai ces deux tables :
http://shakalaka.gouns.free.fr/nico/table1.jpg (table sf_flags)
http://shakalaka.gouns.free.fr/nico/table2.jpg (table sf_topics)
 
Quand j'effectue la requete suivante :  

Code :
  1. SELECT a.id,a.titre,a.auteur,a.reponses,a.vues,a.der_aut,
  2. a.der_rep,a.icon,a.closed,b.id_user,b.id_last_msg,
  3. b.date_last,b.participation,b.page FROM sf_topics a LEFT JOIN sf_flags b ON a.id=b.id_topic WHERE a.forum_id='1' ORDER BY der_rep DESC


 
Il me sort :
http://shakalaka.gouns.free.fr/nico/jointure1.jpg
 
Le résultat que j'aimerais avoir, c'est ça :
http://shakalaka.gouns.free.fr/nico/jointure2.jpg
 
J'ai essayé pas mal de trucs, mais j'y suis pas arrivé :(
 
Est-ce quelqu'un a une idée ? Et est-ce ce que je demande est possible ?
 
Merci d'avance...

 

[jfdsdjhfuetppo]--Message édité par Shakalagoons--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 21-02-2002 à 18:36:53   

Reply

Marsh Posté le 21-02-2002 à 18:45:16    

essaie de rajouter une condition "and b.datelast = ( select max(datelast) from sf_flags c where b.id_topic = c.id_topic )"

Reply

Marsh Posté le 21-02-2002 à 18:47:52    

Je vais essayer ça, merci :)

Reply

Marsh Posté le 21-02-2002 à 18:49:14    

met la dans le left join, sinon il va sauter le left  :D

Reply

Marsh Posté le 21-02-2002 à 18:52:10    

ddr555 a écrit a écrit :

met la dans le left join, sinon il va sauter le left  :D  




Tu entends quoi par là :??:

Reply

Marsh Posté le 21-02-2002 à 18:56:43    

SELECT a.id,a.titre,a.auteur,a.reponses,a.vues,a.der_aut,
a.der_rep,a.icon,a.closed,b.id_user,b.id_last_msg,
b.date_last,b.participation,b.page FROM sf_topics a LEFT JOIN sf_flags b ON a.id=b.id_topic AND b.datelast = ( select max(c.datelast) from sf_flags c where b.id_topic = c.id_topic ) WHERE a.forum_id='1' ORDER BY der_rep DESC
 
C'est ça que tu me conseilles de faire ?
 
En tout cas ça veut pas :/

Reply

Marsh Posté le 21-02-2002 à 18:56:44    

SELECT a.id,a.titre,a.auteur,a.reponses,a.vues,a.der_aut,
 
a.der_rep,a.icon,a.closed,b.id_user,b.id_last_msg,
 
b.date_last,b.participation,b.page  
FROM sf_topics a  
LEFT JOIN sf_flags b ON ( a.id=b.id_topic and b.datelast = ( select max(datelast) from sf_flags c where b.id_topic = c.id_topic )
WHERE a.forum_id='1' ORDER BY der_rep DESC
 
 
enfin si ton SGBD le permet  :sarcastic:  
 
sinon tu peux définir une vue  :D

Reply

Marsh Posté le 21-02-2002 à 19:00:58    

requête SQL :  
 
SELECT a.id,a.titre,a.auteur,a.reponses,a.vues,a.der_aut,
a.der_rep,a.icon,a.closed,b.id_user,b.id_last_msg,
b.date_last,b.participation,b.page  FROM sf_topics a LEFT JOIN sf_flags b ON ( a.id=b.id_topic and b.datelast = ( select max(datelast) from sf_flags c where b.id_topic = c.id_topic ) WHERE a.forum_id='1' ORDER BY der_rep DESC LIMIT 0, 30
 
 
MySQL a répondu:
 
 
You have an error in your SQL syntax near 'select max(datelast) from sf_flags c where b.id_topic = c.id_topic )
WHERE a.fo' at line 1

Reply

Marsh Posté le 21-02-2002 à 19:02:25    

jette mysql  :D

Reply

Marsh Posté le 21-02-2002 à 19:03:54    

je crois que ça accepte pas les sous select  :sarcastic:

Reply

Marsh Posté le 21-02-2002 à 19:03:54   

Reply

Marsh Posté le 21-02-2002 à 19:04:16    

ddr555 a écrit a écrit :

jette mysql  :D  




:fuck:
 
C'est quoi ton histoire de vue :??:

Reply

Marsh Posté le 21-02-2002 à 19:05:46    

Shakalagoons a écrit a écrit :

 
:fuck:
 
C'est quoi ton histoire de vue :??:  



tu veux sélectionner la dernière ligne de la table sf_flags c'est ça ?

Reply

Marsh Posté le 21-02-2002 à 19:08:44    

ddr555 a écrit a écrit :

tu veux sélectionner la dernière ligne de la table sf_flags c'est ça ?  




Non, toutes les lignes ou id_user='1' par exemple...
En gros je voudrais que la jointure se fasse uniquement si id_user='1' dans sf_flags...

Reply

Marsh Posté le 21-02-2002 à 19:13:19    

Shakalagoons a écrit a écrit :

 
Non, toutes les lignes ou id_user='1' par exemple...
En gros je voudrais que la jointure se fasse uniquement si id_user='1' dans sf_flags...  




SELECT a.id,a.titre,a.auteur,a.reponses,a.vues,a.der_aut,
 
a.der_rep,a.icon,a.closed,b.id_user,b.id_last_msg,
 
b.date_last,b.participation,b.page  
FROM sf_topics a  
LEFT JOIN sf_flags b ON ( a.id=b.id_topic and b.id_user='1' )
WHERE a.forum_id='1' ORDER BY der_rep DESC

Reply

Marsh Posté le 21-02-2002 à 19:16:18    

ddr555 a écrit a écrit :

 
SELECT a.id,a.titre,a.auteur,a.reponses,a.vues,a.der_aut,
 
 
a.der_rep,a.icon,a.closed,b.id_user,b.id_last_msg,
 
 
b.date_last,b.participation,b.page  
FROM sf_topics a  
LEFT JOIN sf_flags b ON ( a.id=b.id_topic and b.id_user='1' )
WHERE a.forum_id='1' ORDER BY der_rep DESC  




Je crois que ça marche :D
 
Je vais tester comme il faut, et si c'est bien le cas, je sais pas comment te remercier... Je me défonce le crâne depuis un moment là-dessus :)

Reply

Marsh Posté le 21-02-2002 à 19:17:27    

Shakalagoons a écrit a écrit :

 
Je crois que ça marche :D
 
Je vais tester comme il faut, et si c'est bien le cas, je sais pas comment te remercier... Je me défonce le crâne depuis un moment là-dessus :)  



j'peux te donner des cours de sql si tu veux  :D  :D  :D

Reply

Marsh Posté le 21-02-2002 à 19:21:02    

ddr555 a écrit a écrit :

j'peux te donner des cours de sql si tu veux  :D  :D  :D  




Je note :D
J'ai tout appris sur le tas, alors faut bien que je progresse un peu :D

Reply

Marsh Posté le 21-02-2002 à 19:54:27    

hey connard de shakalagoons, daidai te fait le travail et tu dis pas merci ?  :fou:

Reply

Marsh Posté le 21-02-2002 à 20:14:43    

autruche a écrit a écrit :

hey connard de shakalagoons, daidai te fait le travail et tu dis pas merci ?  :fou:  




 

Citation :

Je crois que ça marche    
 
Je vais tester comme il faut, et si c'est bien le cas, je sais pas comment te remercier... Je me défonce le crâne depuis un moment là-dessus

Reply

Marsh Posté le 21-02-2002 à 20:19:14    

Cai kon mysql gère ni les vues ni les subselect :D


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 21-02-2002 à 20:21:32    

joce a écrit a écrit :

Cai kon mysql gère ni les vues ni les subselect :D  




Les vues je sais pas ce que c'est :D (si t'as le goût de m'expliquer brièvement...)
En fait Daidai a répondu à ma question donc ma requête marche très bien maintenant :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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