Hallo Bodo,
SELECT <felder aus t1 und t2>, MIN(t1.wert*t2.wert) FROM tabelle AS t1, tabelle AS t2 GROUP BY t2.name;
das ist zunächst ein CROSS JOIN, das heißt:
Jede Zeile aus Tabelle t1 wird mit jeder Zeile aus t2 verknüpft.
Willst Du das wirklich?
Gibt es wirklich keine Join-Bedingung?
Was ich möchte:
Alle <felder aus t1 und t2> sollen ausgegeben werden, dabei sollen aus t1 alle Zeilen angezeigt werden, aus t2 aber nur die, für die das MIN zutrifft.
Verstehe ich Dich richtig: Join-Bedingung ist das Minimum des Produkts. Das erscheint mir wenig schlüssig. Somit müsste grundsätzlich bei jedem Datensatz mit positivem Inhalt in t1.wert die gleiche Zeile aus t2 zugeordnet werden und genauso bei jedem Datensatz mit negativem Inhalt eine andere, aber stets gleiche Zeile, aus t2. Was soll das?
Bisher wird von t2 immer eine (aber die falsche) Zeile ausgegeben, das MIN an sich funktioniert wie gewünscht.
Du begehst einen Kardinalfehler, was MySQL angeht:
MySQL ist dokumentiert großzügig, was die Syntax beim Einsatz von Aggregatsfunktionen und GROUP BY angeht:
Alle Werte in allen Spalten, über die weder gruppiert noch aggregiert wird, sind zufällig. Das möchtest Du wahrscheinlich nicht. Wahrscheinlich ist die Lösung Deines Problems eine korrelierte Unterabfrage. Wenn Du uns ein paar Beispieldatensätze aus Deinen beiden Tabellen (selbstverständlich Spieldaten) lieferst, dazu das gewünschte Ergebnis, dann kann man Dir wesentlich besser helfen.
Freundliche Grüße
Vinzenz