requete sql compliquee

requete sql compliquee - PHP - Programmation

Marsh Posté le 12-11-2008 à 11:10:32    

voilou, j'ai deux tables, clients et service... les deux sont liés par l'id, et un clients.id peut etre egal a plusieurs service.id_user
 
alors voila ca que je desirerais faire en une seule requete...
 
 
selectionner autant de fois le client qu'il y a de clients.id=service.id_user
avec tous les champs de clients et de service...
 
si un client n'a pas de service il faut quand meme le selectionner -donc utiliser left join et non inner.
 
 
mais mes connaissances etant assez limitées en jointure -bien que j'apprenne a m'en servir de plus en plus, je sollicite donc votre aide
 
 
quand je fais cette requete
 
 
 

Code :
  1. SELECT *
  2. FROM clients c
  3. LEFT OUTER JOIN service s ON c.id = s.id_user


 
 
 
ca marche....
 
maintenant quand j'essaye de regarder si dans tous ce bazar y'en a ou le champs ville='lamorlaye', he bah si je fais ceci

Code :
  1. SELECT *
  2. FROM clients c
  3. LEFT OUTER JOIN service s ON c.id = s.id_user where
  4. c.contact LIKE '%%' 
  5. and c.commercial LIKE '%%'
  6. and c.service_com LIKE '%%' 
  7. and s.nom LIKE '%%'
  8. and s.prenom LIKE '%%'
  9. and c.dpt LIKE '%%'
  10. and c.statut_com LIKE '%%'
  11. and c.prestation LIKE '%%'
  12. and c.compte LIKE '%moyen%'
  13. and c.ville LIKE '%lamorlaye%'

 
 
 
ca affiche seulement ceux qui ont un c.id = s.id_user et pas les autres ce que j'arrive pas a comprendre pourquoi....
 
 
merci d'avance  :)  

Reply

Marsh Posté le 12-11-2008 à 11:10:32   

Reply

Marsh Posté le 12-11-2008 à 12:03:59    

a quoi servent les LIKE '%%' ?  
 
de plus, comme tu fais s.nom LIKE '%%' et s.prenom LIKE '%%', ça exclue ceux qui ont des lignes a null dans la table service ( client qui n'ont aucun service )  
essaye ça

Code :
  1. SELECT *
  2. FROM clients c
  3. LEFT OUTER JOIN service s ON c.id = s.id_user WHERE
  4. AND c.compte LIKE '%moyen%'
  5. AND c.ville LIKE '%lamorlaye%'


 


---------------

Reply

Marsh Posté le 12-11-2008 à 13:47:51    

a quoi servent les LIKE '%%' ?  
 
 
because que y'a tout un tas de champs et qu'on remplit les champs qu'on veux....  
 
 
ainsi dans la meme requete je peux pas mettre  
 

Code :
  1. SELECT *FROM clients c
  2. LEFT OUTER JOIN service s ON c.id = s.id_user WHERE
  3. c.compte LIKE '%moyen%'
  4. AND c.ville LIKE '%lamorlaye%'
  5. AND s.nom LIKE '%%'

?


Message édité par kaking le 12-11-2008 à 13:48:48
Reply

Marsh Posté le 12-11-2008 à 14:24:59    

c'est sale ,  
lors de la construction de ta requete , tu peux faire mieux :  

Code :
  1. $requete = "SELECT *
  2. FROM clients c
  3. LEFT OUTER JOIN service s ON c.id = s.id_user WHERE 1=1";
  4. if(!empty($_GET['compte'])
  5. {
  6.    $requete .= " AND c.compte LIKE '%".mysql_real_escape_string($_GET['compte'])."'" ;
  7.  
  8. }
  9.  
  10. //et ainsi de suite


---------------

Reply

Marsh Posté le 12-11-2008 à 14:42:28    

....
 
 
:)  :sol:  
 
pas bete, je m'y attelle de suite!
 
merci beaucoup pour ton aide!


Message édité par kaking le 12-11-2008 à 14:43:04
Reply

Sujets relatifs:

Leave a Replay

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