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, 8095 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 - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit "kleiner gleich" funktioniert nicht (2)

Frage von derSESO zum Thema Datenbanken ...

Neue Wissensbeiträge
Vmware

Heise Newsticker: Betrifft die Desktopprodukte von VMware

Information von Penny.Cilin zum Thema Vmware ...

Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Freigabe aus anderem Netz nicht erreichbar (44)

Frage von McLion zum Thema Router & Routing ...

Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail (24)

Frage von ahstax zum Thema Visual Studio ...

Windows Netzwerk
Netzwerk Neustrukturierung (15)

Frage von IT-Dreamer zum Thema Windows Netzwerk ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen (14)

Frage von Akcent zum Thema Windows 10 ...