Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

SQL Join über drei Tabellen





Frage

Hi Leute. Mein SQL ist leider nicht das Beste. Es funktioniert zwar, aber nicht ganz so wie es soll... Ich hoffe Ihr könnt mir weiterhelfen. Ich arbeite hier auf einem MS SQL Server und möchte den Inhalt dreier Tabellen verbinden. Dabei sollen Duplicate rausfallen. Hier die Tabellen: v_R_System (Spalten: NetBios0, ResourceID) v_HS_COMPUTER_SYSTEM (Spalten: ResourceID, Model0) v_GS_PC_BIOS (Spalten: ResourceID, SerialNumber0, Name0) Hier mein SQL Query: SELECT sys.Netbios_Name0, pc.Model0, bios.SerialNumber0, bios.Name0 from ((v_R_System sys inner join v_GS_PC_BIOS bios on sys.ResourceID = bios.ResourceID) inner join v_HS_COMPUTER_SYSTEM pc on sys.ResourceID = pc.ResourceID) where sys.Netbios_Name0 like @variable Jetzt bekomme ich aber dreimal das gleiche angezeigt? Was mache ich da falsch??? Hintergrund: Microsoft SMS2003. Ich möchte einen PC Namen eingeben und dessen Seriennummer und Modell ausgeben. Leider stehen Name, Seriennummer und das Modell in drei unterschiedlichen Tabellen. :-/ Danke schonmal für die Hilfe. Gruss @all, Dirk

Antwort 1 von hendrikw

Kommt die ResourceID in einer der Tabellen mehrfach (3x) vor ?
mfg
Hendrik

Antwort 2 von semi

Versuche es damit
SELECT sys.Netbios_Name0, pc.Model0, bios.SerialNumber0, bios.Name0

FROM v_R_System sys, v_GS_PC_BIOS bios, v_HS_COMPUTER_SYSTEM pc

WHERE sys.Netbios_Name0 LIKE @variable
  AND bios.ResourceID = sys.ResourceID
  AND pc.ResourceID = sys.ResourceID
Ist eine etwas übersichtlichere Syntax.
Mehrere Einträge kann es hier geben, wenn

- sys.Netbios_Name0 LIKE @variable liefert mehr als 1 Datensatz
- bios.ResourceID mehrfach vorhanden
- pc.ResourceID mehrfach vorhanden

Gruß,
Michael

Antwort 3 von Rodi

Hi.
Erstmal Danke für Eure Antworten.
Die Query funktioniert soweit.
Ja, ich fürchte es gibt Duplikate in der Datenbank. Bedingt durch die Verteilungsmechanismen von SMS das alles in die DB schreibt.
Kann ich das irgendwie nur für die Anzeige reduzieren? Ich habe leider keine Datenbankdesigns zur Verfügung anhand derer ich rausfinden könnte wie die Relationen sind und was wo steht. Es gab doch irgendein Kommando "Select distinct" oder so was.
Gruss @all,
Dirk

Antwort 4 von draack

Hi,

"SELECT DISTINCT ..."

Tschö,
Volker

Antwort 5 von Rodi

Hi.
Select Distinct hat die Duplicate ausgelassen.
Jetzt geht's. Vielen Dank nochmal an alle. ;)
Gruss @all,
Dirk

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: