Piszę dość skomplikowane zapytanie, które ma pobrać 3 najnowsze wpisy z bazy "pytan i odpowiedzi".
Wygląda ono tak:
SELECT zp.login, k.nazwa, p.temat, p.tresc, p.odp_ile, p.DATA, p.ocena FROM pytania p JOIN kategorie k ON (p.kat=k.id) JOIN users zp ON (zp.id=p.autor) WHERE IF (p.odp!=0, p.id=p.odp,p.id=p.id) AND p.spam='0' ORDER BY p.id DESC LIMIT 3
W przypadku gdy co najmniej jeden z 3 ostatnich wpisów w tabeli ma w kolumnie odp wartość inną niż 0 oznacza że jest odpowiedzią na wcześniejszy wpis (o id podanym właśnie w tej kolumnie wpisu z odpowiedzią), czyli nie chcę go wyświetlić tylko wpis zawierający pytanie na które ten odpowiada.
W tym celu w WHERE wpisałem IF'a ale efekt jego działanie nie jest taki jakiego oczekuje.
Będę bardzo wdzięczny za pomoc i wszelkie wskazówki.
nikt nie zna odpowiedzi na mój problem ?

próbowałem jeszcze raz joinować tabele w ten sposób ale nadal nie jest to to czego oczekuję

... JOIN users zp ON (zp.id=p.autor) JOIN pytania p1 ON IF (p.odp!=0, p.odp,p1.id)=p.id WHERE p.spam='0' ...
HELP!
