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
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

(IMG:https://zapodaj.net/images/a53faf6c7a5af.png)


(IMG:https://zapodaj.net/images/a92fb17fcf6e3.png)

Proszę o pomoc, dziękuję (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Pyton_000
post
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
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
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?
Go to the top of the page
+Quote Post
adus97
post
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
(IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.10.2025 - 19:27