Heim > Fragen und Antworten > Hauptteil
Ich versuche, eine DISTICNT-Abfrage für eine Spalte durchzuführen und nach einer anderen Spalte zu sortieren, die nicht in einer SELECT-Anweisung enthalten ist. Ich erhalte diesen Fehler:
Abfrage fehlgeschlagen SQLSTATE[HY000]: Allgemeiner Fehler: 3065 Ausdruck Nr. 1 ORDER BY-Klausel nicht in der SELECT-Liste, referenzierte Spalte „midnites_midNite.product_in_category.sortOrder“ ist nicht vorhanden Auswahlliste; diese ist nicht mit DISTINCT kompatibel
Ich habe eine Beispieltabelle „products_in_category“ mit vier Spalten: ID, cat_ID, product_ID und sortOrder. Ich habe versucht, eine Product_ID WHERE cat_ID = 9 DISTICNT-Abfrage durchzuführen und nach dem zugehörigen Abfragewert in der Spalte sortOrder zu sortieren.
ID cat_ID product_ID sortOrder +----------+--------+-----------+--------+ | 1 | 9 | 5 | 3 | +----------+--------+-----------+--------+ | 2 | 9 | 26 | 1 | +----------+--------+-----------+--------+ | 3 | 9 | 5 | 2 | +----------+--------+-----------+--------+ | 4 | 9 | 7 | 4 | +----------+--------+-----------+--------+ | 5 | 9 | 5 | 5 | +----------+--------+-----------+--------+ | 6 | 22 | 4 | 6 | +----------+--------+-----------+--------+ SELECT DISTINCT product_ID FROM product_in_category WHERE cat_ID = 9
Diese Abfrage gibt 3 Werte zurück: 5, 26, 7, was korrekt ist, aber ich muss auch nach dem zugehörigen sortOrder-Wert sortieren. Wenn ich diese Abfrage unten verwende, werden 5 Werte zurückgegeben, was falsch ist, da alle Werte in der Spalte „sortOrder“ eindeutig sind.
SELECT DISTINCT product_ID, sortOrder FROM product_in_category WHERE cat_ID = 9 ORDER BY sortOrder
Wenn ich die folgende Abfrage verwende, löst mySQL diesen Fehler aus und ich verstehe, warum sortOrder nicht in der SELECT-Anweisung enthalten ist. Ich bin nicht sicher, wie ich eine DISTICNT-Abfrage für die Spalte „Product_ID“ durchführen und nach dem zugehörigen sortOrder-Wert des zurückgegebenen Werts sortieren soll.
Abfrage fehlgeschlagen SQLSTATE[HY000]: Allgemeiner Fehler: 3065 Ausdruck Nr. 1 ORDER BY-Klausel nicht in der SELECT-Liste, referenzierte Spalte „midnites_midNite.product_in_category.sortOrder“ ist nicht vorhanden Auswahlliste; diese ist nicht mit DISTINCT kompatibel
SELECT DISTINCT product_ID FROM product_in_category WHERE cat_ID = 9 ORDER BY sortOrder
Ich habe verschiedene Union-, Join- und Select-Anweisungen auf unterschiedliche Weise ausprobiert. Ich hoffe, das ist verständlich und freue mich über jede Hilfe, die Sie leisten können! ! !
P粉5369091862024-04-01 09:29:51
SELECT product_ID, MIN(sortOrder) AS minSortOrder FROM product_in_category WHERE cat_ID = 9 GROUP BY product_ID;