![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
Mam 2 tabele
cinemas cid | nazwa films fid | fcid | state gdzie films.fcid to relacje do cinemas.cid. Wiele rekordów w films może mieć te same fcid, czyli wiele filmów może mieć ten sam cid dla cinemas. Potrzebuję dowiedzieć się, czy WSZYSTKIE films DLA DANEGO fcid mają state = 1. Na zasadzie true or false Ten post edytował mirobor 6.04.2017, 20:41:24 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 875 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Tutaj nie potrzeba PHP zwykły JOIN
Kod SELECT f.* FROM films f INNER JOIN cinemas c ON c.cid = f.fcid WHERE f.state = 1;
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
@tomplus To nie załatwi problemu
![]() Kod SELECT COUNT(IF(state = 0, 0, null)) as 'status_0' FROM films WHERE fcid = 123 Jeśli wynik == 0 znaczy że wszystkie fcid mają status 0; |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
Może zbyt to skomplikowałem. Inaczej na realnym przykładzie:
films id | cinemaID | state state możę być: 0, 1, 2, 3 Znam cinemaID i chcę sprawdzić, czy dla danego cinemaID wszystkie rekordy (może być wiele o różnych 'state') maja state > 1 Jeżeli wszystkie rekordy dla cinemaID mają status>1 wykonuję akcję Jeżeli istnieje choćby 1 rekord o state<2 dla danego cinemaID nie robię nic. Ten post edytował mirobor 7.04.2017, 11:09:20 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
select count(id) from films where cinemaid = 123 and state < 2
To zapytane zwroci ci liczbe filmow dla danego kina ze stanem < 2. Potem zwykly warunek IF w php -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
Problematyczne w tym rozwiązaniu jest to, że jeżeli nie ma w films rekordu dla cid zapytanie zwróci wartość tak jak dla warunku
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Szukasz dziury w calym.... prosze
select count(id), cinemaid from films where cinemaid = 123 and state < 2 teraz zwroci ci inny wyynik -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.07.2025 - 07:58 |