Mam taki problem:
Mam tabele z produktami i tabelę gdzie są przetrzymywane opcje tych produktów wraz z ceną.
stworzyłem takie zapytanie
$podzapytanie_5 = "SELECT MIN(cena) FROM rozmiary "; $podzapytanie_5 .= "WHERE rozmiary.id_produkt = produkty.id_produkt "; $podzapytanie_6 = "SELECT MIN(cena_promocyjna) FROM rozmiary "; $podzapytanie_6 .= "WHERE rozmiary.id_produkt = produkty.id_produkt "; $query = "SELECT produkty.* , producenci.nazwa, (".$podzapytanie_5.") AS cena, (".$podzapytanie_6.") AS cena_promocyjna "; $query .= "FROM produkty INNER JOIN producenci ON produkty.producent = producenci.id_producent "; $query .= "WHERE ((produkty.id_dzial = '".$id_dzial."' AND produkty.id_kategoria = '".$id_kategoria."') OR produkty.id_produkt = ANY (".$podzapytanie.")) "; $query .= "AND produkty.id_dzial = ANY (".$podzapytanie_2.") AND produkty.id_kategoria = ANY (".$podzapytanie_1.") AND produkty.ukryj = 0 AND "; $query .= "cena_promocyjna != '0' AND "; $query .= "; ";
jest tam jescze sortowanie i porcjowanie ale to juz nie isttotne.
ważne jest ze przy próbie odczytania wywala mi błąd
Unknown column 'cena_promocyjna' in 'where clause' WHERE rozmiary.id_produkt = produkty.id_produkt ) AS cena_promocyjna WHERE ((produkty.id_dzial = '4' AND produkty.id_kategoria = '13') OR produkty.id_produkt = ANY (SELECT id_produkt FROM produktkategoria WHERE produktkategoria.id_kategoria = '13' )) AND produkty.id_dzial = ANY (SELECT id_dzial FROM produkty_dzialy WHERE produkty_dzialy.ukryj = 0 ) AND produkty.id_kategoria = ANY (SELECT id_kategoria FROM produkty_kategorie WHERE produkty_kategorie.ukryj = 0 ) AND produkty.ukryj = 0 AND cena_promocyjna != '0' ORDER BY (( CASE WHEN cena_promocyjna != 0 THEN cena_promocyjna ELSE cena END )) ;
Czyli nie da się przefitrowac wyniku po aliasie??
Są na to jakies sposoby?