So habe ich die folgende normale Abfrage:Ist es möglich, eine Unterabfrage IN-Klausel über ein Aggregat zu verwenden?
SELECT
someCol,
COUNT(*),
GROUP_CONCAT(myTableID SEPARATOR ',')
FROM myTable
GROUP BY someCol
Ich mag würde die Liste des myTableIDs in der dritten Spalte in einer Klausel der Unterabfrage verwenden. Die folgende nicht-Arbeits Abfrage verdeutlicht dies:
# this does not work
SELECT
someCol,
COUNT(*),
( SELECT COUNT(mySubTable.*)
FROM mySubTable
WHERE mySubTable.foreignID IN GROUP_CONCAT(myTable.myTableID SEPERATOR ',')
) AS FOREIGN_COUNT
FROM myTable GROUP BY someCol
Der IN GROUP_CONCAT()
Teil nicht funktioniert, weil die GROUP_CONCAT() ist nur eine Zeichenfolge mit Kommas Rückkehr nicht eine aktuelle Liste von IDs oder einer Unterabfrage.
Meine Frage ist, ist es möglich, die aggregierte Liste von myTableIDs als Teil der IN-Klausel der Unterabfrage zu verwenden?
Ich glaube, Sie brauchen diese Informationen in einer Variablen zu erhalten. Machen Sie eine vorbereitete Aussage in der Sprache Ihrer Wahl – Drew
Ich bin fast peinlich, Ihnen dies zu zeigen, aber es ist etwas verwandt. Schauen Sie sich [Anhang C] an (http://stackoverflow.com/a/34015333) – Drew
Was genau versuchen Sie im einfachen Englisch? Was ist das eigentliche Ziel? – Bohemian