Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Abfragen zweier Tabellen (nicht relationel)

Frage Entwicklung Datenbanken

Mitglied: MeisterQui-GonJinn

MeisterQui-GonJinn (Level 1) - Jetzt verbinden

23.03.2009, aktualisiert 12:42 Uhr, 2786 Aufrufe, 3 Kommentare

Ich habe ein Problem mit einer Abfrage von zwei Tabellen:

1. Tabelle
01.
ID_Auto AutoName 
02.
100         Ford 
03.
101         VW
2. Tabelle
01.
ID_Auto ID_Feld Feld_Inhalt 
02.
100        0           Sommer-Reifen 
03.
100        1           Test-Eintrag 
04.
101        0           Winter-Reifen
Folgende Ausgabe möchte ich gerne erreichen:
01.
Ford    Sommer-Reifen    Test-Eintrag 
02.
VW      Winter-Reifen       
Kann ich sowas irgendwie mit einer SQL-Abfrage realisieren?
Oder weiß jemand, wie ich es automatisiert hinbekomme die zweite Tabelle in die Form:

01.
ID_Auto Feld0                  Feld1 
02.
100        Sommer-Reifen   Test-Eintrag 
03.
101        Winter-Reifen        
Mitglied: AndreasHoster
23.03.2009 um 12:58 Uhr
Ich habe zwar keine Ahnung wie es ohne relationale Verknüpfungen gehen soll, aber mit Hilfe relationaler Verknüpfungen sähe es so aus:
01.
SELECT TA1.AutoName, t2_1.FELD_Inhalt, t2_2.FELD_Inhalt 
02.
FROM (TA1 LEFT JOIN [select * from TA2 where ID_FELD='0']. AS t2_1 ON TA1.ID_AUTO = t2_1.ID_AUTO) LEFT JOIN [select * from TA2 where ID_FELD='1']. AS t2_2 ON TA1.ID_AUTO = t2_2.ID_AUTO;
Mit TA1 als 1. Tabelle und TA2 als 2. Tabelle.
Anmerkung: Bei mir sind die IDs varchar definiert und je nach System muß man eventuell die [ ] durch ( ) ersetzen.
Bitte warten ..
Mitglied: MeisterQui-GonJinn
23.03.2009 um 14:37 Uhr
Vielen Dank.

Jetzt eine weiterführende Frage. Es ist ja nicht so, dass ich nur 2 IDs in Tabelle2 habe sondern gleich 51.... kann ich den LEFT JOIN solange verlängern wie ich möchte und wenn ja wie? Kann man das auch automatisieren?
Bitte warten ..
Mitglied: Logan000
23.03.2009 um 15:06 Uhr
Moin Moin

Mein vorschlag sähe so aus: (Wobei ich Tabelle1 "Autos" und Tabelle2 "Reifen" getauft habe.
01.
Select Autoname, Reifen1.Feld_Inhalt, Reifen2.Feld_inhalt  
02.
From Autos  
03.
	LEFT JOIN Reifen As Reifen1 ON Autos.ID_Auto = Reifen1.ID_Auto AND Reifen1.ID_feld = 0 
04.
	Left JOIN Reifen As Reifen2 ON Autos.ID_Auto = Reifen2.ID_Auto AND Reifen2.ID_feld = 1
Ist im Grunde das gleiche in grün, nur ohne "Unterabfragen".

Zitat von MeisterQui-GonJinn:
Jetzt eine weiterführende Frage. Es ist ja nicht so, dass ich
nur 2 IDs in Tabelle2 habe sondern gleich 51.... kann ich den LEFT JOIN solange verlängern wie ich möchte
Ja Theoretisch schon. Alledings haben die meisten Datenbanken eine Max. Länge für Abfragen.
und wenn ja wie?
Für die 2. Tabelle immer einen neuen Alisanamen vergeben, etwa so:
01.
... 
02.
Left JOIN Reifen As Reifen2 ON Autos.ID_Auto = Reifen2.ID_Auto AND Reifen2.ID_feld = 1 
03.
Left JOIN Reifen As Reifen3 ON Autos.ID_Auto = Reifen2.ID_Auto AND Reifen2.ID_feld = 2 
04.
Left JOIN Reifen As Reifen4 ON Autos.ID_Auto = Reifen2.ID_Auto AND Reifen2.ID_feld = 3 
05.
....
Und natürlich das Select Entsprechend erweitern:
01.
Select ...... Reifen2.Feld_Inhalt, Reifen3.Feld_Inhalt, Reifen4.Feld_Inhalt 
02.
...
Kann man das auch automatisieren?
Ja, aber wozu. Die Abfrage erstellst Du einmal und dann hast Du Sie.

Gruß L.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Festplatten, SSD, Raid
Vergleich zweier SSD-Typen im Raid-10 für den Anwendungsfall SQL-Datenbank (8)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...

Windows 7
Computer OU auslesen bzw. abfragen (2)

Frage von mexx991 zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (22)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...