Einzelnen Beitrag anzeigen

Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

SQL Abfrage über 3 Tabellen

  Alt 30. Nov 2009, 15:15
Datenbank: MS SQL Express • Version: 2005 • Zugriff über: ADO
Moin zusammen,

ich benötige Hilfe bei einer Abfrage über 3 Tabellen.

1. Tabelle: Sites
#id
site
sitennr

2. Tabelle: HSRP
#id
hsrp
site_id#

3. Tabelle: Subnets
#id
vlan
hsrp
site_id#


Die 1. Tabelle: Sites enthält folgende Daten:
id|site|sitenr
1 |Kiel| 140
2 |Ulm| 325

Die 2. Tabelle: HSRP enthält 8 Datensätze, die wie folgt aussehen:
id|hsrp|site_id
1 | 23 | 1
2 | 24 | 1
3 | 25 | 1
4 | 26 | 1
5 | 23 | 2
6 | 24 | 2
7 | 25 | 2
8 | 26 | 2

Die 3. Tabelle: Subnets enthält folgende Daten:
#id|vlan|hsrp|site_id#
1 |2101| 23 | 1
2 |3402| 24 | 2
3 |1200| 25 | 1


Die 2. Tabelle: HSRP muss komplett angezeigt und die jeweiligen Daten aus den anderen Tabellen hinzugefügt werden.
Die Tabelle: HSRP steht mit dem Fremdschlüssel site_id# der Tabelle: Sites in Verbindung.
Desweiter steht die Tabelle: HSRP mit dem Attribute hsrp der Tabelle: Subnets in Bezug.
Die Tabelle: Subnets steht mit dem Fremdschlüssel site_id# mit der Tabelle: Sites in Bezug.

Ergebnis
id|hsrp|site|sitenr|vlan
1 | 23 |Kiel|140|2101
2 | 24 |Kiel|140|NULL
3 | 25 |Kiel|140|1200
4 | 26 |Kiel|140|NULL
5 | 23 |Ulm|325|NULL
6 | 24 |Ulm|325|3402
7 | 25 |Ulm|325|NULL
8 | 26 |Ulm|325|NULL

Mit folgendem SQL Statement kann ich die Tabellen: HSRP und SITES abfragen:
SQL-Code:
SELECT network_hsrp.id,
       network_hsrp.hsrp,
       network_hsrp.site_id,
       network_sites.site,
       network_sites.sitenr
FROM network_hsrp, network_sites
WHERE network_hsrp.site_id = network_sites.id
Mit folgendem SQL Statement kann ich die Tabellen: HSRP und Subnets abfragen:
SQL-Code:
SELECT network_hsrp.id,
       network_hsrp.hsrp,
       network_subnets.vlan,
       network_subnets.hsrp as subnethsrp
FROM network_hsrp
       LEFT OUTER JOIN network_subnets
       ON network_hsrp.hsrp = network_subnets.hsrp
Es wäre schön, wenn einer von euch wüsste, wie man beide Abfragen kompiniert, dass das Ergebnis von oben herauskommt.

Danke im voraus.

Sven
  Mit Zitat antworten Zitat