|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : mars 2005 Messages : 8 ![]() |
j'ai 2 tables contacts:
- address: une table sandard que je suis obligé d'utiliser - addonaddress: une table qui me permet de définir des champ qui ne seraient pas dans la table standard "address" Un contact est donc une entrée de la table address + une entrée de la table addonaddress (avec le même ID). Un contact peut-être de type "company" ou "contact" (un membre de la compagnie). Si le contact est de type "contact", on remplit le champ "parent" (dans la table addonaddress) avec l'ID de la compagnie à laquelle il appartient. Mon problème est le suivant... Je voudrais faire une requête qui me donnerait à la fois la liste des compagnies (sans contact) et la liste des contacts (avec la compagnie). J'ai écrit ceci: Code :
Je sais que c'est parce que je mets "contaa.parent = compa.id" mais je ne sais pas comment faire pour avoir les compagnies seules (pour le cas où il faudrait lié une facture par exemple à la compagnie elle-même et pas à une personne de la compagnie) Merci d'avance pour votre aide. |
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 812 ![]() |
Si j'ai bien compris, tu veux:
- 1 ligne par compagnies (avec les informations de la compagnie) qui n'ont aucun contact - n lignes par compagnies (avec les informations de la compagnie) et par contact de la compagnie (avec les informations du contact) quand le contact existe. Ca devrait le faire. Code :
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes. Mon combat pour les droits des consommateurs face aux abus des grandes marques. |
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2005 Messages : 8 ![]() |
C'est tout à fait ça dans le principe que tu décris.
Je vais essayer de comprendre d'abord ta requête à base de JOIN que je n'ai jamais utilisé... Ensuite, je la testerai je repasserai pour te dire si ça a fonctionné Merci beaucoup en tout cas |
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : mars 2005 Messages : 8 ![]() |
Ok, je pense avoir compris le principe...
Tu joins les 2 tables pour la compagnie (INNER JOIN) pour n'avoir plus qu'une table, tu fais de même avec les contacts (second INNER JOIN... Là si je comprends bien, on a 2 tables identiques, non?) et tu fais un LEFT OUTER JOIN pour avoir les concordances là où l'ID de la compagnie vaut le champ "parent" (on aura les contacts + les infos compagnie) + les résultats non concordants de la table de gauche (ici, la compagnie, donc les infos de compagnie seules)... C'est bien ça? Petit problème... j'ai un problème de syntaxe avec l'alias "CONTACT"... Je peux m'en passer et faire comme ceci? Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 812 ![]() |
Oui tu as compris.
Normalement oui tu peux. C'est vrai que je suis un peu un psychopathe de l'alias mais je pense que ça marche. D'ailleurs tu as déjà du tester.
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes. Mon combat pour les droits des consommateurs face aux abus des grandes marques. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com