Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
SQL Abfrage

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Carlo567
Gast





BeitragVerfasst am: 12. Feb 2006 11:31   Titel: SQL Abfrage

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?
 

Alex.MH
Gast





BeitragVerfasst am: 12. Feb 2006 13:24   Titel:

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
 

Carlo567
Gast





BeitragVerfasst am: 12. Feb 2006 18:18   Titel: ?

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?
 

Gast
Gast





BeitragVerfasst am: 26. März 2006 18:45   Titel: Re: SQL Abfrage

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 ;

 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy