[Résolu] requete avec tout plein de liaisons difficiles entre les tables

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Résolu] requete avec tout plein de liaisons difficiles entre les tables

par furiouslol » 14 janv. 2009, 19:25

Si tu veux prendre des détours hein, c'est toi qui voit ;)

par kaking » 14 janv. 2009, 19:18

j'ai trouvé un autre moyen-egal a peu pres a ce que tu me propose mais plus lisible pour mysql...

Code : Tout sélectionner

mysql_query("CREATE TEMPORARY TABLE dist_serv AS SELECT DISTINCT date_relance_service, id_user FROM service") or die(mysql_error());

je créé dabord une table ou ce trouve ce que je veux prendre de la table service : une date relance service unique par id_user

puis je lie les tables comme ceci :

Code : Tout sélectionner

SELECT c.*,ds.* FROM clients c INNER JOIN dist_serv ds ON c.id=ds.id_user


et 'oilou! ca me donne autant de client qu'il a de date_relance differentes :lol:

merci beaucoup de votre aide :)

par furiouslol » 14 janv. 2009, 19:14

Un petit distinct sur ma requete et c'est bon non ?

Code : Tout sélectionner

SELECT clients.*, DINSTINCT(service.date_relance_service) FROM clients JOIN service ON clients.id=service.id_user

par Truc » 14 janv. 2009, 17:52

Modération :
kaking, merci d'utiliser un titre clair et qui correspond bien à ta demande.
Les titres contenant "HELP !", "Aidez-moi", "J'ai un problème", "Ça marche pas",...
n'apportent rien à la compréhension de ta demande.

Par ailleurs, nous savons déjà par ton message que tu as besoin d'aide.

Tu peux corriger ton titre en éditant ton premier message.

Merci de prendre le temps de lire les règlements.

par kaking » 14 janv. 2009, 12:30

=D> bien vu pour le nom service, faut pas l'afficher.....


mais QUELLE REQUETE FAUT pour afficher ce que je veux -sans le nom service donc, mais avec les date_relance_service ?

par furiouslol » 14 janv. 2009, 12:03

ok moi je veux bien mais comment tu vas afficher le nom du service alors que tu fais un distinct sur deux lignes qui ont un nom de service différent ?


J'm' explique en reprennant ton exemple

id-----------------id_user--------------date_relance_service----------------nom
5---------------------1---------------------01/01/09----------------------------commercial
6---------------------1---------------------01/01/09----------------------------bureautique
7---------------------1---------------------05/08/09----------------------------secretairiat

tu veux selectionner les lignes qui ont une date relance différente, mais tu veux aussi en afficher le nom, alors dans ce cas une requete qui ferait ca te reverrait une ligne avec secretariat, et une avec commercial, ou burautique, sans que tu maitrise lequel des deux sera choisit, c'est illogique mais est ce vraiment ce que tu veux ?

Sinon ma requete etait jsute une piste pour simplifier ta jointure, tu fais une jointure sur une table formée par une sous requete, tu n'a pas besoin de ca

par kaking » 14 janv. 2009, 09:24

^^ desole, je vais m'appliquer, mais ta requete ne prends pas en compte la date_relance_service.....

il faut selectionner autant de fois le client qu'il possede de services, si ses services ont une date_relance_service differentes!

si monsieur durand(ayant l'id 1) possede 3 services ayant ces specificités :

id-----------------id_user--------------date_relance_service----------------nom
5---------------------1---------------------01/01/09----------------------------commercial
6---------------------1---------------------01/01/09----------------------------bureautique
7---------------------1---------------------05/08/09----------------------------secretairiat


il faut qu'il soit selectionné 2 fois -ca c'est la requete actuelle qui fait ca-enfin je crois

maintenant je voudrais en meme temps selectionner la date relance service et le nom du service.....



comment faire siouplais? merci!

par furiouslol » 13 janv. 2009, 22:39

Salut

C'est plus simple quand on a les schema des tables (sous forme de create table), mais j'me lance et j'imagine qu'un truc comme ca peut te faire avancer

Code : Tout sélectionner

SELECT clients.*, service.date_relance_service, service.id_user FROM clients JOIN service ON clients.id=service.id_user

[Résolu] requete avec tout plein de liaisons difficiles entr

par kaking » 13 janv. 2009, 18:30

bonjour tous le monde.

'oilou, j'ai la requete suivante concernant mes deux tables 'clients' et 'service'

Code : Tout sélectionner

SELECT * FROM clients JOIN ( SELECT DISTINCT date_relance_service, id_user FROM service ) td ON clients.id=td.id_user
un client peut avoir plusieurs services.

or je veux selectionner autant de fois les clients qu'ils ont de service .

Si le client Pierre possede 2 services qui ont tous les deux une date_relance_differente, je veux selectionner Pierre 2 fois.... c'est ce que permets la requete...




maintenant, j'aimerais selectionner le client Pierre 2 fois s'il possede 2 service a la date_relance_service differents ET selectionner aussi les date_relance_service et le champs nom du service aussi...



mais je sais pas comment faire...... une idee pour un pauvre gars desesperé siouplais?



d'avance merci :D