Antworten auf deine Fragen:
Neues Thema erstellen

MySQL Ergebnis aus anderer Abfrage ausschließen

lachender_engel

Aktives Mitglied

Hallo Zusammen.
Ich brauche einen Denkanstoß (oder gerne auch die Lösung) für folgende Anforderung:
Aus einer Magento-Datenbank möchte ich die Liste aller Kunden filtern, die KEIN Geburtsdatum hinterlegt haben (das nur zur Erklärung).
Dabei nutzt Magento zwei Tabellen. customer_entitiy und customer_entitiy_datetime.
Mit der folgenden Query bekomme ich eine Liste der IDs aller Kunden, die ein Geburtsdatum hinterlegt haben:
Code:
SELECT entity_id FROM `customer_entity` LEFT JOIN `customer_entity_datetime` ON customer_entity.entity_id = customer_entity_datetime.entity_id where customer_entity_datetime.attribute_ID = 11
So erhalte ich einen Result mit genau den Datensätzen, die ich NICHT haben möchte.
Daher muss ich das Ergebnis aus der nachfolgenden Abfrage ausschließen:
Code:
SELECT * FROM `customer_entity` WHERE entity_id...
Das heißt, die zweite Abfrage soll die Datensätze NICHT beinhalten, die aus der ersten Abfrage ermittelt wurden.
Ich habe mich schon belesen und dachte die Lösung wäre OUTER JOIN nur muss ich gestehen nicht wirklich zu verstehen wie ich die in meinem Fall anwende (wenn das überhaupt eine Lösung sein kann).
Gerne möchte ich das in einer MySQL-Abfrage unterbringen mir nicht mit einem PHP-Array die Liste zusammen bauen müssen.
Hat jemand einen Tipp oder die Lösung? Und bitte nur was schreiben, wenn das auch wirklich funktioniert! Nicht "probiere mal das oder dies" oder "so oder so kann es klappen". Ideal ist eine Aussage wie "so geht das" ;-) Denn ausprobiert habe ich genug ;-) Danke!
 

msa1989

Bin da

Es gibt jetzt zwei Lösungen. Kurz und knapp mit deinem bisheringen:
Code:
SELECT * FROM table WHERE entity_id NOT IN
(SELECT ***);

Diese Lösung funktioniert ist aber NICHT optimal, da sie sehr rechenintensiv ist. Besser ist, du verknüpftst beide Tabellen und selektierst anhand des Datums.
Code:
SELECT entity_id FROM `customer_entity` ce
  INNER JOIN `customer_entity_datetime` ced ON ???
where ced.DATUMFELD IS NULL
Ich weiß nicht wie die Spalten heißen bzw. wie sie verknüpft sind. Aber diese Lösung wäre zu empfehlen was die Serverlast angeht
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben