Entwickler-Ecke
Datenbanken - Alle "NICHT-TREFFER" anzeigen lassen ?!
OliverN_26 - Mo 26.03.12 17:08
Titel: Alle "NICHT-TREFFER" anzeigen lassen ?!
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 - Mo 26.03.12 17:44
Quelltext
1: 2: 3:
| Select T1.* from Table1 t1 Left join Table2 t2 on t2.ID=t1.ID Where T2.ID is null |
oder
Quelltext
1:
| Select * from table where ID not (Select ID from table2) |
vagtler - Mo 26.03.12 17:44
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 - Di 27.03.12 09: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):
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
OliverN_26 - Di 27.03.12 10: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 - Di 27.03.12 10: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 - Di 27.03.12 10:32
Ich hatte oben bereits erwähnt das ich einen Fehler 500 bekomme, da die Auswertung zu lange dauert.
Robert.Wachtel - Di 27.03.12 10:40
OliverN_26 hat folgendes geschrieben : |
| 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.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!