Jörg: sql: Noch ne Nachfrage

Beitrag lesen

Habe jetzt 2 verschiedene Queries, die seltsamerweise zu unterschiedlichen Ergbnismengen führen:

Query 1 joined einfach noch die Kundentabelle (tableK) und hat 10% mehr ergebnisse. Würde das nicht dafür sprechen, dass zu einer KundenID mehrere Einträge in tableM gefunden werden? Falls ja, wie eliminiere ich die? Die Frage hat zwar für mich rein sportlichen wert, weil ich alle relevanten daten auch ohne tableK erhalte, aber interessant find ichs schon.

SELECT DISTINCT
m1.KundenID AS Kunden_ID,
k.... AS Kundennummer, 
k.... AS Strasse, 
FROM
    tableM m1
    JOIN tableK k ON m1.KundenID = k.KundenID
WHERE
    m1.Auftragsdatum > "2021 -01 -01" AND NOT EXISTS(
    SELECT 
        m2.KundenID
    FROM
        tableM m2
    WHERE
        m1.KundenID = m2.KundenID AND
        m2.Auftragsdatum < "2021 -01 -01")



SELECT DISTINCT
m1.KundenID AS Kunden_ID
FROM
    tableM m1
WHERE
    m1.Auftragsdatum > "2021 -01 -01" AND NOT EXISTS(
    SELECT 
        m2.KundenID
    FROM
        tableM m2
    WHERE
        m1.KundenID = m2.KundenID AND
        m2.Auftragsdatum < "2021 -01 -01")