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
GELÖST

Left Join in Oracle

Frage Entwicklung Datenbanken

Mitglied: PizzaHouse

PizzaHouse (Level 1) - Jetzt verbinden

24.09.2007, aktualisiert 26.09.2007, 26733 Aufrufe, 4 Kommentare

SQL Syntax in Oracle

I. Die folgende Abfrage:

SELECT * FROM tabelle1 t1 LEFT JOIN (tabelle2 t2, tabelle t3) ON (t2.spalte2=t1.spalte2 AND t2.spalte3=t3.spalte3) WHERE t1.spalte1='wert1'

II. ist eine theoretische Erweiterung von:

SELECT * FROM tabelle1 t1 LEFT JOIN tabelle2 t2 ON (t2.spalte2=t1.spalte2) WHERE t1.spalte1='wert1'

In Ausgabe von II. stehen in t2.spalte3 z.b. Usernamen, die in t3.spalte3 zu Realnamen aufgelöst werden sollen.


-->Oracle 9i - Fehler:
ORA-00907: missing right parenthesis


Als Oracle-Rookie seh´ ich da leider net durch, wo der Fehler ist, hat jmd einen Tipp?

Gruß,
PH.
Mitglied: Biber
24.09.2007 um 15:30 Uhr
Moin PizzaHouse,

01.
SELECT * FROM tabelle1 t1  
02.
 LEFT JOIN (tabelle2 t2 left join tabelle3 t3 ON t2.spalte3=t3.spalte3)  
03.
           on t2.spalte2=t1.spalte2  
04.
WHERE t1.spalte1='wert1'
Gruß
Biber
Bitte warten ..
Mitglied: PizzaHouse
25.09.2007 um 11:53 Uhr
hi biber,

super, vielen dank!

hab mich leider vertan, da fehlt noch eine Tabelle, wobei ich leider wieder über die Verschachtelung gestolpert bin.

SELECT * FROM tabelle1 t1
LEFT JOIN (tabelle t2 LEFT JOIN (tabelle3 t3 LEFT JOIN tabelle4 t4 ON t3.spalte3=t4.spalte3))
ON t2.spalte2=t1.spalte2
WHERE t1.spalte1='wert1'

ORA-00905: missing keyword
Bitte warten ..
Mitglied: Biber
25.09.2007 um 14:31 Uhr
Moin PizzaHouse,

rein biooptisch gescannt sieht es von hier aus danach aus, dass tabelle t2 an einem LEFT JOIN beteiligt sein soll, ohne dass ein t2-Feld daran Anteil hat.
Es gibt keine logische Verbindung zwischen (Tabelle t1-joinedWith-t2) zu (t3 geJoint mit t4).

Schreib es um, dann siehst du es.
01.
Select t1.* from tabelle1 t1, tabelle2 t2, tabelle3 t3,tabelle4 t4 
02.
Where t1.spalte2 = t2.Spalte2 
03.
AND   t3.spalte3 = t4.spalte3 
04.
AND t1.spalte1='wert';
[das würde auch wirklich einem "INNER JOIN" entsprechen.]

Anders ausgedrückt: es fehlt eine komplette Zeile "...ON t2.feldx=t3.feldX"
01.
SELECT * FROM tabelle1 t1  
02.
LEFT JOIN (tabelle t2 LEFT JOIN (tabelle3 t3 LEFT JOIN tabelle4 t4 ON t3.spalte3=t4.spalte3)) 
03.
ON t2.spalteX=t3.spalteX <---------------------die fehlt 
04.
ON t2.spalte2=t1.spalte2  
05.
WHERE t1.spalte1='wert1'
[hier müsste es aber "INNER JOIN" heißen, wenn "Inner Joins" gewollt sind
Aber Überschrift und Inhalt des Postings liefen halt von Anfang an auseinander.]

Grüße
Biber
Bitte warten ..
Mitglied: PizzaHouse
26.09.2007 um 10:21 Uhr
klappt alles jetzt wunderbar, nochmal vielen dank!

seltsamer weise wollte die oracle abschließend die klammern nicht akzeptieren, ganz ohne hingegen ging´s. Oo
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell Domain Join (2)

Frage von Patrick-IT zum Thema Batch & Shell ...

Backup
Backup von laufender Oracle-Datenbank - VSS writer (4)

Frage von brain2011 zum Thema Backup ...

Windows Server
gelöst Oracle ODBC Treiber in Windows 2008 R2 (3)

Frage von kschi12 zum Thema Windows Server ...

Datenbanken
ORACLE - MERGE Abfrage mit Denkfehler? (3)

Frage von Chillministrator zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...