Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mehrfach SQL-Abfrage auf eine Tabellenspalte

Frage Entwicklung Datenbanken

Mitglied: TheToxic

TheToxic (Level 1) - Jetzt verbinden

19.04.2010, aktualisiert 13:44 Uhr, 8023 Aufrufe, 4 Kommentare

Ich beschäftige mich seit kurzem mit MS Acces 2007. Als Langzeitprojekt möchte ich mir eine Inventarisierungsdatenbank für ein Netzwerk einrichten.

Zu meinem Problem:

Ich habe 3 Tabellen mit folgenden Inhalten:
  • Hersteller
    • ID
    • Herstellername

  • INV_PC
    • ID
    • Prozessor
    • RAM
    • Hersteller_ID
    • Monitor_ID

  • INV_Monitor
    • ID
    • Modell
    • Größe
    • Hersteller_ID


Die Tabelle INV_PC ist über den Schlüssel Monitor_ID mit der Tabelle INV_Monitor und der Spalte ID verbunden. (Beziehung 1:n)
Die Tabelle INV_PC ist über den Schlüssel Hersteller_ID mit der Tabelle Hersteller und der Spalte ID verbunden. (Beziehung n:1)
Die Tabelle INV_Monitor ist über den Schlüssel Hersteller_ID mit der Tabelle Hersteller und der Spalte ID verbunden. (Beziehung n:1)

Ich möchte in einer Abfrage alle Informationen aus allen drei Tabellen abfragen. Ich weiss jedoch nicht wie ich den Hersteller per Inner Join mit beiden Tabellen vergleichen kann.
Die Ausgabe sollte schematisch folgendermaßen aussehen:

z.B.:
PC-ID Prozessor RAM PC-Hersteller Monitor-ID Modell Größe Monitor-Hersteller
1 AMD 2GB DELL 3 Syncmaster 22'' Samsung
2 Intel 1GB Acer 5 T1350 19'' Futjisu Siemens


Ich hoffe ihr versteh mein Problem und könnt mir helfen.
Mitglied: maretz
19.04.2010 um 12:44 Uhr
select h.*, ipc.*, imon.* from hersteller h, inv_pc ipc, inv_monitor imon where h.id=ipc.hersteller_id and h.id=imon.hersteller_id

wo war jetzt das problem? Ok, wie du das in Access einbaust kann ich dir mangels Access nicht sagen - aber iirc. konnte man dort auch richtige SQL-Statements eintragen...

die alternative wäre
select h1.herstellername,h2.herstellername,... from hersteller h1, hersteller h2,... where ipc.hersteller_ID=h1.id and ipc.monitor_id=imon.id and imon.hersteller_id=h2.id
Bitte warten ..
Mitglied: TheToxic
19.04.2010 um 13:43 Uhr
nene, so einfach war das nicht gemeint.

Ich möchte den Hersteller des Monitor´s und den Hersteller des PC´s ausgeben und beides in einer Abfrage. Dazu musst bedacht werden, dass jeder PC mehrere Monitore haben kann (deswegen auch die Beziehungen).

Die Ausgabe sollte schematisch folgendermaßen aussehen:

z.B.:
PC-ID Prozessor RAM PC-Hersteller Monitor-ID Modell Größe Monitor-Hersteller
1 AMD 2GB DELL 3 Syncmaster 22'' Samsung
2 Intel 1GB Acer 5 T1350 19'' Futjisu Siemens
Bitte warten ..
Mitglied: MadMax
19.04.2010 um 14:43 Uhr
Hallo TheToxic,

Access habe ich hier zwar nicht, aber folgender Befehl sollte da auch funktionieren:
01.
select	pc.ID as PC_ID, 
02.
	pc.Prozessor, 
03.
	pc.RAM, 
04.
	hpc.Herstellername as PC_Hersteller, 
05.
	mon.ID as Monitor_ID, 
06.
	mon.Modell, 
07.
	mon.Größe, 
08.
	hmon.Herstellername as Monitor_Hersteller 
09.
from	INV_PC pc 
10.
	inner join INV_Monitor mon on pc.Monitor_ID = mon.ID 
11.
	inner join Hersteller hpc on pc.Hersteller_ID = hpc.ID 
12.
	inner join Hersteller hmon on mon.Hersteller_ID = hmon.ID
Das Prinzip ist jedenfalls, daß Du die Herstellertabelle zweimal in die Abfrage bringst, einmal mit INV_PC verknüpft und einmal mit INV_Monitor. Dann werden sie mit unterschiedlichen Alias versehen, damit sie auseinandergehalten werden können (hpc bzw. hmon).

Gruß, Mad Max
Bitte warten ..
Mitglied: TheToxic
19.04.2010 um 15:43 Uhr
Vielen Dank für die schnelle Hilfe.
Ich musste den SQL-Syntax für Access noch ein wenig anpassen, aber nun geht es.

Hier der aktuelle Sytnax
01.
select 
02.
	INV_PC.ID as PC_ID, 
03.
	INV_PC.Prozessor, 
04.
	INV_PC.RAM, 
05.
	hpc.Herstellername as PC_Hersteller, 
06.
	INV_Monitor.ID as Monitor_ID, 
07.
	INV_Monitor.Modell, 
08.
	INV_Monitor.Größe, 
09.
	hmon.Herstellername as Monitor_Hersteller 
10.
from 
11.
((INV_PC INNER JOIN INV_Monitor ON INV_PC.Monitor_ID = INV_Monitor.ID) 
12.
	INNER JOIN Hersteller AS hpc ON INV_PC.Hersteller_ID = hpc.ID) 
13.
	INNER JOIN Hersteller AS hmon ON INV_Monitor.Hersteller_ID = hmon.ID;
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst SQL Abfrage mit Visual Studio (5)

Frage von specialuser zum Thema Datenbanken ...

Datenbanken
SQL - Abfragen Nachfrage (2)

Frage von PronMaster zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit MAX() (9)

Frage von FrAmEr zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Neue Wissensbeiträge
Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(8)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

Information von BassFishFox zum Thema Datenschutz ...

Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Utilities

CCleaner 5.33 mit Malware infiziert

(27)

Information von SeaStorm zum Thema Utilities ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Festplatten, SSD, Raid
gelöst Problem mit DELL 815R Server und Windows Bluescreen (24)

Frage von Leo-le zum Thema Festplatten, SSD, Raid ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (19)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

Windows Netzwerk
Dateien mit Intelligenz per GPO ins Programmverzeichnis (14)

Frage von erwin.t zum Thema Windows Netzwerk ...