Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   [SQL] Doppelter Join der gleichen Tabelle (https://www.delphipraxis.net/157670-%5Bsql%5D-doppelter-join-der-gleichen-tabelle.html)

gsh 20. Jan 2011 13:13

Datenbank: MySQL • Version: 5.0 • Zugriff über: direct

[SQL] Doppelter Join der gleichen Tabelle
 
Hallo Leute,

ich hab da mal eine SQL Frage an euch. Bin selber leider mit Joins noch nicht ganz fit.

Ich habe zwei Tabellen (gekürzt):
Daten:
id: INT, responsible_main: INT, responsible_backup: INT;

Responsible:
id: INT, name: VARCHAR(100);


Im Programm möchte ich jetzt alle Daten ausgeben. Bei den Daten soll jetzt aber logischerweiße nicht die IDs stehen sondern der Name von dem Responsible. Normal würde ich da jetzt einfach ein Join machen. Das Problem ist aber das ich zwei resposible hab (Main und Backup) und zwei mal die gleiche Tabelle reinjoinen geht auch nicht weil die spaltennamen dann schon exisiteren.

Wisst ihr dafür eine Lösung oder kann man das vielleicht auch einfach über zwei "unter Selects" lösen?

DeddyH 20. Jan 2011 13:15

AW: [SQL] Doppelter Join der gleichen Tabelle
 
Wenn Du Aliase verwendest, kannst Du die Tabelle auch mehrfach joinen.

gsh 20. Jan 2011 13:40

AW: [SQL] Doppelter Join der gleichen Tabelle
 
Zitat:

Zitat von DeddyH (Beitrag 1076098)
Wenn Du Aliase verwendest, kannst Du die Tabelle auch mehrfach joinen.

Bei den letzten Versuchen hat das irgendwie nie richtig funktioniert. :?
Jetzt hab ich es aber einfach noch mal versucht und es klappte auf anhieb. :coder:
Damit der Thread nicht vollkommen sinnlos ist hier für die Nachwelt:
Code:
SELECT Data.id, responsible_main, responsible_backup, RespMain.name AS responsible_main_name, RespBackup.name AS responsible_backup_name FROM `Table_daten` Data
JOIN `Table_responsible` RespMain ON (RespMain.`id` = Data.`responsible_main`)
JOIN `Table_responsible` RespBackup ON (RespBackup.`id` = Data.`responsible_backup`)
WHERE ...;


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz