2009-08-18 5 views
0

J'ai déjà posé cette question mais je n'ai toujours pas réussi à la faire fonctionner. Quelqu'un a suggéré une auto-adhésion, mais je ne vois pas où cela va fonctionner. Je reçois toujours 2 lignes avec les résultats incorrects. L'auto-adhésion est toujours présente mais je n'arrive pas à obtenir les résultats dont j'ai besoin.comment puis-je combiner 2 lignes en ajoutant une colonne de la deuxième ligne dans le résultat final?

Je veux aller de ceci:

id sender   recipient 
1 Administrator Administrator 
1 Miller   Miller 

à ceci:

id sender   recipient 
1 Administrator Miller 

Voici le SQL que je travaille avec.

SELECT 
t1.msg_id AS id, 
t3.lastname AS sender, 
t4.lastname AS recipient 
FROM 
mail_message AS t1 
Inner Join mailbox AS t2 ON t2.msg_id = t1.msg_id 
Inner Join employee AS t3 ON t3.employee_id = t2.employee_id 
Inner Join employee AS t4 ON t3.employee_id = t4.employee_id 

Répondre

1

Votre rejoindre (t3.employee_id = t4.employee_id) est manifestement erronée - vous joindrez employee sur lui-même. Vous devez remplacer cette condition par join sur mailbox ou - c'est difficile à dire sans voir la structure exacte de votre table. Pouvez-vous l'afficher?

+0

Salut Chss. Je n'ai pas la structure ici, c'est sur un serveur au travail et je n'ai pas accès après 18h00. Le VPN est en panne. Tout ce que j'ai est le SQL. J'ai pensé que le SQL n'était pas correct. Je pense que je dois probablement rejoindre la boîte aux lettres. Avez-vous d'autres suggestions>? –

+1

J'imagine que vous devez vous inscrire sur 'mail_message' - il est probable qu'il ait une sorte de' sender_id' et 'recipient_id'. Rappelez-vous, je devine basé uniquement sur le nom de la table. Vous devez joindre 'employee' deux fois, une fois en tant qu'expéditeur et une fois en tant que destinataire - jetez un oeil à vos tables et vous devriez être en mesure de déterminer quelles colonnes rejoindre. Si ce n'est pas le cas, affichez la structure (et/ou les données de l'échantillon) ici lorsque vous avez une chance et je vais jeter un coup d'oeil. – ChssPly76

Questions connexes