SELECT zawodnicy.id, CONCAT(nazwisko, ' ', imie) AS zawodnik, pozycja, id_kraju, nazwa, YEAR(CURDATE())-YEAR(data_ur) AS ile FROM zawodnicy LEFT JOIN kraje ON zawodnicy.id_kraju=kraje.id WHERE DAY(data_ur)='7' AND MONTH(data_ur)='10';
wszelkie "id" to klucze podstawowe
data_ur to indeks
Mimo to EXPLAIN zwraca mi, ze nie uzywam indeksu (type ALL):
id select_type TABLE type possible_keys KEY key_len ref rows Extra 1 SIMPLE zawodnicy ALL NULL NULL NULL NULL 3695 USING WHERE 1 SIMPLE kraje eq_ref PRIMARY PRIMARY 2 strona.zawodnicy.id_kraju 1
Jak inaczej dobrac sie do rekordow ktore maja pole DATE rowne podanemu dniu i miesiacu, obojetnie ktory rok.