Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 16. Nov 2018 6:05

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: SQL Abfrage
BeitragVerfasst: 12. Feb 2006 11:31 
Hallo,

habe zwei Tabellen A und B die über einen id miteinander verknüpft sind.
Code:
tabA
id nutzlast...

tabB
id id_a nutzlast...
Ich suche eine SQL-Abfrage das mir als Ergebnis all die Zeilen aus A liefert, die NICHT mit einer Zeile in B vernüpft sind.


Zuhause hab ich mysql 5.x, auf dem Webspace 4.x. Mit 5.x geht eine Abfrage in der Art die das gewünschte Ergebnis liefert:
Code:
SELECT * FROM tab1 WHERE ... AND id NOT IN (SELECT id_a FROM tab2 WHERE ...)
Aber mit mysql 4 geht das leider nicht.


Kann mir bitte jemand helfen?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 12. Feb 2006 13:24 
Ist zwar nicht das was du wissen wolltest, aber tu dir den Aerger nicht an. Solche Problemchen ziehen sich quer duch die Benutzung von MySQL und du bist spaetestens dann verlassen, wenn du Transaktionen benoetigst und dich auf die (nicht vorhandenen) ACID Eigenschaften von MySQL verlaesst.

Versuch lieber gleich auf einer richtigen Datenbank, wie z.B. PostgreSQL zu entwickeln - du wirst dir viel Aerger ersparen.

Gruss,
Alex


Nach oben
   
 Betreff des Beitrags: ?
BeitragVerfasst: 12. Feb 2006 18:18 
Das geht leider nicht, weil auf dem Webspace nur mysql läuft.

Ich weiß zwar das mysql einige Einschränkungen gegenüber postgres hat, jedoch wird das für mein kleines Projekt nicht die Rolle spielen.

Die gesuchte Funktion gibt es bestimmt auch in mysql.


Kann mir bitte jemand helfen?


Nach oben
   
 Betreff des Beitrags: Re: SQL Abfrage
BeitragVerfasst: 26. Mär 2006 18:45 
Wie viele Datensätze hast du denn in deiner Tabelle_B?
Wenn dort mehr als nur ein paar Datensätze drin stehen dann verbietet sich ein WHERE ... IN ... bzw. ein WHERE ... NOT IN ... von alleine. Verwende aus Performancegründen nie ein IN Statement wenn in deiner IN Liste mehr als nur ein paar Werte enthalten sind.

Probier mal lieber sowas in der Art:
Code:
SELECT
        a.*
FROM
        tabelle_a a,
        ( SELECT id FROM tabelle_a MINUS id_a FROM tabelle_b ) a_ohne_b
WHERE
        a.id = a_ohne_b.id_a ;



Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de