![]() |
Datenbank: MS SQL Express • Version: 2005 • Zugriff über: ADO
SQL Abfrage über 3 Tabellen
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:
Mit folgendem SQL Statement kann ich die Tabellen: HSRP und Subnets abfragen:
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
SQL-Code:
Es wäre schön, wenn einer von euch wüsste, wie man beide Abfragen kompiniert, dass das Ergebnis von oben herauskommt.
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 Danke im voraus. Sven |
Re: SQL Abfrage über 3 Tabellen
Hi,
Vielleicht so: EDIT: Verbessert:
SQL-Code:
Habs aber nicht getestet. Funktioniert!
SELECT
hsrp.id, hsrp.hsrp, site.site, site.sitenr, subnets.vlan FROM site JOIN hsrp on (hsrp.site_id = site.id) LEFT OUTER JOIN subnets on ((subnets.site_id = site.id) and (subnets.hsrp = hsrp.hsrp)) |
Re: SQL Abfrage über 3 Tabellen
Vielen Dank.
Hat geklappt. Schönen Abend noch. |
Re: SQL Abfrage über 3 Tabellen
@N. General:Stimmt. Oder sehr Änlich:
SQL-Code:
SELECT
HSRP.id , HSRP.hsrp , Sites.site , Sites.seitenr , Subnets.vlan FROM HSRP LEFT OUTER JOIN Sites ON HSRP.site_id = Sites.id LEFT OUTER JOIN Subnets ON HSRP.hsrp = Subnets.hsrp AND Sites.id = Subnets.site_id |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz