Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Modyfikacja kwerendy z możliwością filtrowania przepisów
adus97
post 25.12.2020, 20:06:07
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.11.2020

Ostrzeżenie: (0%)
-----


Dobry wieczór,

Czy powyższą kwerendę można zmodyfikować w taki sposób aby wyświetlała ona również przepis mimo brakującego składnika?

SELECT *, IF(SUM(exist IS NULL), NULL, SUM(exist)) AS total FROM( SELECT p.Nazwa, p.obrazek, p.id,IF(ps.skladniki_id IN('372,258,209'),1,NULL)AS exist FROM przepisy AS p INNER JOIN przepisy_skladniki AS ps ON ps.przepisy_id=p.id) AS tmp GROUP BY id HAVING total






Proszę o pomoc, dziękuję smile.gif
Go to the top of the page
+Quote Post
Pyton_000
post 26.12.2020, 11:34:00
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Najszybciej zmienić IN na ANY i już będziesz miał przepisy które zawierają którykolwiek składnik
Go to the top of the page
+Quote Post
adus97
post 26.12.2020, 16:57:54
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.11.2020

Ostrzeżenie: (0%)
-----


Niestety zmiana w kwerendzie z IN na ANY nic nie pomogła a ba wyskakuje informacja, ze kwerenda jest źle sformułowana

  1. SELECT *, IF(SUM(exist IS NULL), NULL, SUM(exist)) AS total FROM( SELECT p.Nazwa, p.obrazek, p.id,IF(ps.skladniki_id ANY('372,258,209'),1,NULL)AS exist FROM przepisy AS p INNER JOIN przepisy_skladniki AS ps ON ps.przepisy_id=p.id) AS tmp GROUP BY id HAVING total
Go to the top of the page
+Quote Post
LowiczakPL
post 31.12.2020, 08:46:42
Post #4





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


Cytat(adus97 @ 25.12.2020, 20:06:07 ) *
Czy powyższą kwerendę można zmodyfikować w taki sposób aby wyświetlała ona również przepis mimo brakującego składnika?


Czyli nie interesuje cię czy zawiera wszystkie składniki tylko czy zawiera jakikolwiek ze składników, jeśli zawiera choć 1 to pobierasz przepis, no i sobie sumujesz ilość zawieranych składników tak?


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
adus97
post 1.01.2021, 16:44:28
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.11.2020

Ostrzeżenie: (0%)
-----


Cytat(LowiczakPL @ 31.12.2020, 08:46:42 ) *
Czyli nie interesuje cię czy zawiera wszystkie składniki tylko czy zawiera jakikolwiek ze składników, jeśli zawiera choć 1 to pobierasz przepis, no i sobie sumujesz ilość zawieranych składników tak?


Kwerenda zawierająca wszystkie składniki jest już stworzona:
  1. SELECT *, IF(SUM(exist IS NULL), NULL, SUM(exist)) AS total FROM( SELECT p.Nazwa, p.obrazek, p.id,IF(ps.skladniki_id IN('372,258,209'),1,NULL)AS exist FROM przepisy AS p INNER JOIN przepisy_skladniki AS ps ON ps.przepisy_id=p.id) AS tmp GROUP BY id HAVING total


Chcę stworzyć kwerendę, która uwzględnia oba te kwestie
a) wyświetlanie przepisu zawierającego wszystkie składniki
cool.gif wyświetlanie przepisu mimo zawartych wszystkich do niego składników

Nie wiem czy jest to w ogóle fizyczne do wykonania. Baza prezentuje się w następujący sposób:

https://pastebin.com/raw/ejG9XrzR
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 02:19