Archiv
Ansicht:   
Suche   erweiterte Suche

Nachricht aus dem Archiv

Tommyviech schrieb am 24.March.2009, 22:12:55 in der Kategorie pc.coding

Problem mit SQL Abfrage auf unterschiedlichen Servern

Hallo MistaPink,

>

SELECT DISTINCT a.Name, a.Vorname FROM Kunde AS a RIGHT JOIN
> Ausleihe AS b ON NOT b.KNr = a.KNr;


> Liefert bei mir lokal alle Kunden, die nichts ausgeliehen haben auf dem
> Uniserver werden aber einfach alle Kunden, egal ob sie etwas ausgeliehen
> haben oder nicht, zurückgegeben.

RIGHT JOIN xyz ON NOT A=B? Sowas hab ich ja noch nie gesehen. Das ist SQL und kein C! Auf der sicheren Seite bist du nur mit ANSI-compliant SQL.
Vorschlag: Falls MySql OUTER JOINs nicht 100%ig unterstützt, ein (ANSI-compliant) EXCEPT sollte es doch schon können, oder?  ;-)

also:

SELECT Knr, Name, Vorname FROM Kunde
EXCEPT
SELECT Knr, Name, Vorname FROM Ausleihe
ORDER BY 1,2,3
;




In der MySQL Doku habe ich dann folgende
> Abfrage gefunden:
>

SELECT DISTINCT a.Name, a.Vorname FROM Kunde AS a LEFT JOIN Ausleihe
> AS b ON a.KNr = b.KNr WHERE b.KNr IS NULL;


> Bei mir liefern beide Abfragen das selbe Ergebnis, auf dem Uniserver
> funktioniert nur die zweite richtig.

Könnte daran liegen, dass es sauberes Bilderbuch ANSI-SQL ist...?  ;-)

> Kann mir einer erklären warum? Und warum es lokal geht und in der Uni
> nicht?

evtl. unterschiedliche Servereinstellungen für den DB-Dialekt. Also immer auf die Finger klopfen \"ANSI, ANSI, ANSI\".  :-D

Viel Erfolg
Torsten

Archiv
Ansicht:   
Suche   erweiterte Suche
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz