Peter Schmidt: SQL-Abfrage optimieren

Beitrag lesen

Moin!

Ich möchte eine mySQL Abfrage optimieren. Da ich von mysql nicht so viel ahnung habe frage ich mal hier da die abfrage relativ lange dauert.

Also erstmal meine aktuelle Abfrage:

SELECT
        villages.x,
        villages.y,
        tribe.name,
        ally.id

FROM
        (villages LEFT JOIN
                tribe ON villages.tribe=tribe.id) LEFT JOIN
                        ally ON tribe.ally=ally.id
        WHERE
                (villages.x >= ".$x_start.") && (villages.x <= ".$x_end.") &&
                (villages.y >= ".$y_start.") && (villages.y <= ".$y_end.");";

Ich denke die Verknüpfung ist eindeutig:
Es soll aus der Tabelle villages das tribe Feld mit der id aus tribe verknüpft werden. Außerdem soll aus der Tabelle tribe das Feld ally mit dem Feld id aus der Tabelle ally verknüpft werden. Es soll aber auch funktionieren wenn villages.tribe und tribe.ally nicht definiert sind.