mysql Wählen Sie where count = 0

8

In meinem db habe ich eine Tabelle "sales" und ein "sales_item". Manchmal läuft etwas schief und der Verkauf wird aufgezeichnet, aber nicht der Artikel des Verkaufs.
Also ich versuche, die SalesID von meiner Tabelle "Umsatz", die keine Zeilen in der Tabelle sales_item haben.

Hier ist die MySQL-Abfrage, von der ich dachte, dass sie funktionieren würde, aber sie tut es nicht:

%Vor%

Irgendwelche Gedanken?

    
OSdave 15.06.2010, 12:25
quelle

7 Antworten

14

Woher kommt der Tabellenalias v? Es wäre eine wirklich gute Idee, die Tabellendefinition zu zeigen;)

Es muss ein linker Join sein:

%Vor%

Table1 ist Ihre Verkaufstabelle und table2 ist Ihr sales_item

    
Tobias P. 15.06.2010, 12:30
quelle
4

Sie müssen den Tabellen nicht beitreten, Sie können etwas wie:

verwenden %Vor%

Dies filtert nur die Verkäufe, die keine entsprechenden sales_item Einträge haben.

    
Victor Stanciu 15.06.2010 12:29
quelle
4

Immer mit Group By

verwendet %Vor%     
Salil 15.06.2010 12:30
quelle
1

Aus Gründen der Vollständigkeit ....

%Vor%

MySQL kann Probleme mit IN-Klauseln haben.

    
Phil Wallach 15.06.2010 13:17
quelle
0

Unter der Annahme, dass jedem Artikel in sales_item eine sales_id zugeordnet ist, suchen Sie wahrscheinlich nach allen Verkäufen, die keine Artikel enthalten.

Wie wäre es mit einer Unterabfrage? Erhalten Sie alle Verkaufs-IDs aus der Verkaufstabelle, in der die ID nicht in der Artikeltabelle vorhanden ist ...

%Vor%

(Hinweis: Exakte Syntax kann falsch sein, aber die Idee sollte solide sein, wenn ich die Frage richtig verstanden habe)

    
ZombieSheep 15.06.2010 12:30
quelle
0

Der Join beschränkt die anzuzeigenden Zeilen. Mein Rat ist, den Join zu vergessen und stattdessen so etwas zu verwenden:

auswählen * aus dem Verkauf wo salesId nicht in (selectId aus sales_item auswählen)

Gibt im Grunde Verkäufe zurück, denen kein sales_item zugeordnet ist.

Viel Glück

    
Kari 15.06.2010 12:33
quelle
0

Sie sollten die Zeilen wahrscheinlich nach der Verkaufspositions-ID gruppieren.

%Vor%     
Michał Pękała 15.06.2010 12:34
quelle

Tags und Links