Frank (no reg): verschachtelte Abfrage

Beitrag lesen

yo-yo ...

du solltest dir die Frage stellen, welche Ergebnismenge du (nicht du selber in dem Moment) zählen willst. Daraus leitest du die Beschreibung der Ergebnismenge ab.

In deinem Fall, Ilja, angenommen, du hast in table_2 10 Records die über [tid] mit table_1 in Zusammenhang stehen. Welche Spalte aus welchen dieser 10 Records willst du denn dann anzeigen?

Dein Vorschlag führt zu einer Veränderung der Aufgabenstellung. Und mit einer anderen Aufgabenstellung muss mein SQL Angebot nicht das richtige sein.

Das Group-By kann man sich sparen? Warum, macht das MySQL automatisch indem es implizit nach allen Spalten gruppiert? Das ist aber nicht gerade ANSI-SQL-92 Standard oder?

Ciao, Frank

yo,

SELECT    [table_1].[tid],
          [table_1].[spalte1],
          [table_1].[spalte2]
FROM      [table_1] INNER JOIN
          [table_2] ON [table_2].[tid] = [table_1].[tid]
GROUP BY  [table_1].[tid],
          [table_1].[spalte1],
          [table_1].[spalte2]
ORDER BY  COUNT(*) DESC
LIMIT 0, 10


>   
> bei mysql mit seiner version kann man sich die gruppierungen nach der tid sparen. auch wird die lösung nicht funktioniren, sobald spalten aus der zweiten tabelle mit ausgegeben werden sollen. ist dies der fall, könnten korellierende unterabfragen zum einsatz kommen.  
>   
> Ilja  
>   
>