Autor Beitrag
OliverN_26
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Mo 26.03.12 16:08 
Hey

Wenn ich 2 Tabellen mit INNER JOIN verknüpfe werden mir nur die Daten angezeigt, die auf beiden Seiten zusammen passen .. ok .. kann ich mir aber auch die Daten anzeigen lassen, welche zwar in Tabelle A stehen, in Tabelle B aber keine Übereinstimmung finden?

Danke
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 26.03.12 16:44 
ausblenden Quelltext
1:
2:
3:
Select T1.* from Table1 t1
Left join Table2 t2 on t2.ID=t1.ID
Where T2.ID is null


oder
ausblenden Quelltext
1:
Select * from table where ID not (Select ID from table2)					

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
vagtler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 96
Erhaltene Danke: 24


Delphi 2010, C# (VS 2012), Objective-C, Java
BeitragVerfasst: Mo 26.03.12 16:44 
ausblenden SQL-Anweisung
1:
SELECT * FROM T1 LEFT JOIN T2 ON T2.ID = T1.ID WHERE T2 IS NULL					


//Edit: Zu spät - aber nur gaaanz knapp... :mrgreen:
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Di 27.03.12 08:37 
Hallo

Die Datenmenge ist anscheinend auch hier zu groß, denn ich bekomme einen Fehler 500 angezeigt. Gibt es keine Möglichkeit das ohne einen LEFT JOIN zu machen?

Bei dem SELECT bekomme ich einen Fehler (event_name und wonr_intern sind gleich):
ausblenden SQL-Anweisung
1:
Select * from sk_auftraege where wonr_intern not (Select event_name from tevents)					

---->
MySQL meldet:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(Select event_name from tevents) LIMIT 0, 30' at line 1
vagtler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 96
Erhaltene Danke: 24


Delphi 2010, C# (VS 2012), Objective-C, Java
BeitragVerfasst: Di 27.03.12 09:07 
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Di 27.03.12 09:24 
Hmm .. ok .. es muß "NOT IN" heißen .. aber der schmiert immer noch ab. In dem einen Table hab ich 42.000 Einträge und in dem anderen 44.000 .. so komm ich anscheinend nich weiter :-(
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: Di 27.03.12 09:30 
Was bedeutet denn bei Dir "schmiert immer noch ab"? Ist das eine qualifizierte Fehlerbeschreibung?

Die Anzahl Deiner Tabellenzeilen ist lächerlich - jedes vernünftige RDBMS dürfte selbst mit einem Vielfachen dessen keinerlei Probleme haben.
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Di 27.03.12 09:32 
Ich hatte oben bereits erwähnt das ich einen Fehler 500 bekomme, da die Auswertung zu lange dauert.
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: Di 27.03.12 09:40 
user profile iconOliverN_26 hat folgendes geschrieben Zum zitierten Posting springen:
Ich hatte oben bereits erwähnt das ich einen Fehler 500 bekomme, da die Auswertung zu lange dauert.

q.e.d.

Ich kenne keinen "Fehler 500" in Verbindung mit MySQL.

Oder redest Du etwas von einem HTTP-Error?

Zu einer *genauen* Fehlerbeschreibung gehört halt ein wenig mehr: wie greifst Du auf die Datenbank zu und von welcher Architektur reden wir hier überhaupt? Welche *exakte* Fehlermeldung kommt genau wo?

Wenn Dein Query ein Timeout produziert, dann solltest Du Dir mal den Plan anschauen - es würde mich nicht wundern, wenn da auf Grund fehlender resp. unpassender Indizierungen das ein oder andere Natural zu tragen kommt.