MarcinoxPL Posted July 9, 2017 Share Posted July 9, 2017 Witam, mam potrzebę stworzenia zapytania do bazy danych które ma działać następująco. Zapytanie ma wyświetlić: - listę produktów ( nazwa, url, zdjęciem cena, ilość ) Warunki: Produkty mają być wyświetlone w przypadku kiedy występują w KAŻDEJ podanej kategorii ( po id_category ) Wie ktoś jak sformułować takie zapytanie? Link to comment Share on other sites More sharing options...
0 endriu107 Posted July 10, 2017 Share Posted July 10, 2017 Linki url do produktów i do zdjęć nie są zapisywane w bazie danych. Link to comment Share on other sites More sharing options...
0 MarcinoxPL Posted July 10, 2017 Author Share Posted July 10, 2017 Wiem o tym, mam problem ze stworzeniem tego złożonego zapytania, pozostałe danych sobie sam ogarnę Linki url do produktów i do zdjęć nie są zapisywane w bazie danych. Link to comment Share on other sites More sharing options...
0 endriu107 Posted July 10, 2017 Share Posted July 10, 2017 Pokaż co masz. Link to comment Share on other sites More sharing options...
0 MarcinoxPL Posted July 10, 2017 Author Share Posted July 10, 2017 SELECT pl.id_product, pl.name, p.price, cp.id_category FROM `' . _DB_PREFIX_ . 'product` p LEFT JOIN `' . _DB_PREFIX_ . 'product_lang` pl ON p.`id_product` = pl.`id_product` LEFT JOIN `' . _DB_PREFIX_ . 'category_product` cp ON p.`id_product` = cp.`id_product` WHERE '.$where.' ORDER BY p.`id_product` ASC Mam takie zapytanie - chcę pobrać produkty które znajdują się w kategoriach np: 20,21 i 23 - tzn produkt musi być w każdej z tych kategorii Chcę wstawić warunek na 'category_product` ale nie wiem jak Link to comment Share on other sites More sharing options...
0 endriu107 Posted July 10, 2017 Share Posted July 10, 2017 W tym zapytaniu jeśli produkt jest w kategorii 20 i 21 to zostanie wyświetlony w wyniku 2 razy. Link to comment Share on other sites More sharing options...
0 MarcinoxPL Posted July 10, 2017 Author Share Posted July 10, 2017 W tym zapytaniu jeśli produkt jest w kategorii 20 i 21 to zostanie wyświetlony w wyniku 2 razy. właśnie tak się wyświetla - każda kategoria osobno Link to comment Share on other sites More sharing options...
0 endriu107 Posted July 10, 2017 Share Posted July 10, 2017 Czyli chcesz taki wynik: +------------+------------+ |nazwa |kategoria | +------------+------------+ |Produkt A | 20 | +------------+------------+ |Produkt B | 20 | +------------+------------+ |Produkt A | 21 | +------------+------------+ |Produkt B | 21 | +------------+------------+ Link to comment Share on other sites More sharing options...
0 MarcinoxPL Posted July 10, 2017 Author Share Posted July 10, 2017 Czyli chcesz taki wynik: +------------+------------+ |nazwa |kategoria | +------------+------------+ |Produkt A | 20 | +------------+------------+ |Produkt B | 20 | +------------+------------+ |Produkt A | 21 | +------------+------------+ |Produkt B | 21 | +------------+------------+ W sumie to tak, produkty które są w KAŻDEJ wymienione kategorii Link to comment Share on other sites More sharing options...
0 endriu107 Posted July 10, 2017 Share Posted July 10, 2017 W każdej to ja rozumie że produkt musi być w kategorii 20, 21 i 23, gdyby był tylko w dwóch kub jednej to ma sie nie wyświetlać? Link to comment Share on other sites More sharing options...
0 MarcinoxPL Posted July 10, 2017 Author Share Posted July 10, 2017 W każdej to ja rozumie że produkt musi być w kategorii 20, 21 i 23, gdyby był tylko w dwóch kub jednej to ma sie nie wyświetlać? dokładnie tak tylko jak spełniają warunek że w każdej z grup Link to comment Share on other sites More sharing options...
0 endriu107 Posted July 10, 2017 Share Posted July 10, 2017 O ile dobrze zrozumiałem to coś w tym stylu: SELECT DISTINCT pl.id_product, pl.name, p.price FROM ps_product p LEFT JOIN ps_product_lang pl ON p.id_product = pl.id_product LEFT JOIN ps_category_product cp ON p.id_product = cp.id_product WHERE cp.id_category IN (20, 21, 23) ORDER BY p.id_product ASC Link to comment Share on other sites More sharing options...
0 MarcinoxPL Posted July 10, 2017 Author Share Posted July 10, 2017 O ile dobrze zrozumiałem to coś w tym stylu: SELECT DISTINCT pl.id_product, pl.name, p.price FROM ps_product p LEFT JOIN ps_product_lang pl ON p.id_product = pl.id_product LEFT JOIN ps_category_product cp ON p.id_product = cp.id_product WHERE cp.id_category IN (20, 21, 23) ORDER BY p.id_product ASC Dziękuje bardzo! Dokładnie o to mi chodziło. Bardzo mi pomogłeś Link to comment Share on other sites More sharing options...
Question
MarcinoxPL
Witam, mam potrzebę stworzenia zapytania do bazy danych które ma działać następująco.
Zapytanie ma wyświetlić:
- listę produktów ( nazwa, url, zdjęciem cena, ilość )
Warunki:
Produkty mają być wyświetlone w przypadku kiedy występują w KAŻDEJ podanej kategorii ( po id_category )
Wie ktoś jak sformułować takie zapytanie?
Link to comment
Share on other sites
12 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now