Hier ist ein anderes Beispiel, das nicht ohne Aliase neu geschrieben werden kann (kann nicht GROUP BY DISTINCT
).
einen Tisch Stellen genannt purchases
, die von customers
bei stores
getätigten Käufe erfasst, dh es ist ein viel zu viele Tisch und die Software muss wissen, welche Kunden Einkäufe bei mehr als einem Geschäft gemacht haben:
SELECT DISTINCT customer_id, SUM(1)
FROM (SELECT DISTINCT customer_id, store_id FROM purchases)
GROUP BY customer_id HAVING 1 < SUM(1);
. .wird mit dem Fehler Every derived table must have its own alias
brechen. Um dies zu beheben:
SELECT DISTINCT customer_id, SUM(1)
FROM (SELECT DISTINCT customer_id, store_id FROM purchases) AS custom
GROUP BY customer_id HAVING 1 < SUM(1);
(Beachten Sie die AS custom
alias).
Könnten Sie das nicht einfach als "ID von TT2 auswählen" vereinfachen? – DMKing
Ich habe diesen Fehler kürzlich bekommen, weil ich ein extra ')' in einer Abfrage mit vielen 'UNION ALL's hatte. – mpen
Sehen, wie dies die # 1 Google-Suche ist ... Die akzeptierte Antwort beantwortet nicht wirklich den Fehler "Jede abgeleitete Tabelle muss ihren eigenen Alias haben". Schaue unten für mehr Informationen. –