Mam takie zapytanie:
$zapytanie ="select * from zdarzenia where typ_zdarzenia='zacielenie' and date(data_zdarzenia)<= DATE_SUB(CURDATE(), INTERVAL 20 DAY) and date(data_zdarzenia)>= DATE_SUB(CURDATE(), INTERVAL 22 DAY) or date(data_zdarzenia)<= DATE_SUB(CURDATE(), INTERVAL 41 DAY) and date(data_zdarzenia)>= DATE_SUB(CURDATE(), INTERVAL 43 DAY) or date(data_zdarzenia)<= DATE_SUB(CURDATE(), INTERVAL 62 DAY) and date(data_zdarzenia)>= DATE_SUB(CURDATE(), INTERVAL 64 DAY)";
W skrócie - pobiera rekordy o typie 'zacielenie' z okresu 20-22 41-43 i 62-64 dni od dnia dzisiejszego.
Mam jednak 2 pytania z tym związane:
1) Czy to zapytanie jest dobrze napisane czy można je napisać lepiej ( prościej,przejrzyściej)
2) W otrzymywanym wyniku bywa ze pobiera mi 2 zdarzenia dla tego samego bydlo_id (jest to jedno z pól w tabeli zdarzenia) - jedno ktore było 21 dni temu i drugie ktore było 42 dni temu - jak mogę zrobić że jeśli wystąpiło 21 dni temu to nie pobiera tego co było 42 dni temu?
Myslałem żeby najpierw wylistowac tabele bydlo z typem zenskim, nastepnie na podstawie wyniku dla kazdego id sprawdzic ostatnie zdarzenie o typie zacielenie - tyle ze wtedy raz ze robie dwa zapytania a dwa ze w przypadku sprawdzania kazdej sztuki bedzie to niezbyt optymalne.
Dzięki za pomoc.