Hallo
ich hab da mal ne frage zu mysql.
SELECT
var1
,var2
FROMtable1
ORDER BYvar2
DESC LIMIT 0,30und gehe dann jedes ergebnis durch und starte diese abfrage (zu jedem ergebniss)
SELECTvar3
FROMtable2
WHERE xyz1 <= var1 AND xyz2 >= var1
Hier und da Lese ich etwas über z.B. JOIN() - jedoch werde ich aus der dokumentation nicht schlauer.
Du verwechselst das mit JOIN.
Da Du keine Gleichheitsbedingungen hast, somit ein Thetajoin vorliegt, kann Dein JOIN Performance kosten, sollte aber immer noch schneller sein als Deine vielen Einzelabfragen:
SELECT
t1.var1, -- Spalte var1 aus der Tabelle table1, die hier t1 genannt wird (Alias)
t1.var2, -- analog Spalte var2 aus table1
t2.var3 -- Spalte var3 aus table2
FROM table1 t1 -- Aliasnamen sparen Schreibarbeit
INNER JOIN table2 t2 -- explizite JOIN-Syntax, plus Aliasname
ON t2.xyz1 <= t1.var1 AND t2.xyz >= t1.var1 -- JOIN-Bedingung
ORDER BY t1.var2 DESC
LIMIT 0, 30
Das kann selbst MySQL 3.23 :-)
Freundliche Grüße
Vinzenz