![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 6.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jest tablica :
id_historia_statusow | id_zamowienia | id_statusu_zamowienia Chodzi o to aby nie trzeba było dla każdego zamówienia z osobna sprawdzać warunku. np.: SELECT *FROM `historia_statusow_zamowienia` WHERE id_statusu_zamowienia IN (1,2) AND id_statusu_zamowienia NOT IN (7,9) AND `id_zamowienia`=10 Chodzi o to aby czymś zastąpić `id_zamowienia`= kolejne id_zamowienia Próbowałem zrobić to przez GROUP BY ale to to nie to. Czy jest jakiś sposób w MySql aby wykonać takie zapytanie czy trzeba w php po koleji sprawdzać każdy rekord? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
SELECT *FROM `historia_statusow_zamowienia` WHERE id_statusu_zamowienia IN (1,2) AND id_statusu_zamowienia NOT IN (7,9) AND `id_zamowienia`=10 Skoro IN(1,2), to na pewno NOT IN(7,9) i na pewno nie `id_zamowienia`= 10. Logika się kłania. Albo manual/pierwszy lepszy tutorial. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Skoro IN(1,2), to na pewno NOT IN(7,9) co do tego się całkowicie zgadzam i na pewno nie `id_zamowienia`= 10. Logika się kłania. Albo manual/pierwszy lepszy tutorial. id_zamowienia to inna kolumna, no chyba ze id jest unique no to wtedy tak hehe |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
id_zamowienia to inna kolumna, no chyba ze id jest unique no to wtedy tak hehe Masz całkowitą rację (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zagalopowałem się troszkę i nie zauważyłem, że to różne nazwy są (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 6.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
unikalną wartością jest tylko id_historia_statusow
Podam wartości w tabeli to wam trochę rozjaśni Kod [url="http://localhost/phpmyadmin/sql.php?db=msi&table=historia_statusow_zamowienia&token=8a04a6bbbd4a9f26fd8ecfcade2f6c70&pos=0&session_max_rows=30&disp_direction=horizontal&repeat_cells=100&dontlimitchars=0&sql_query=SELECT+%2AFROM+%60historia_statusow_zamowienia%60++ORDER+BY+%60historia_statusow_zamowienia%60.%60id_historia_statusow%60+ASC"]id_historia_statusow[/url] | id_zamowienia | id_statusu_zamowienia 1 | 10 | 1 2 | 10 | 2 3 | 10 | 3 4 | 10 | 8 5 | 15 | 1 6 | 15 | 2 7 | 15 | 7 8 | 15 | 9 Chodzi o to aby zwróciło mi tylko wiersz a dokładnie id_zamowienia jesli id status_zamowienia wynosi 1,2 ale nie ma statusow 7,9 Ma sie to odnosic do id_zamowienia. Sprawdzamy wszystkie rekordy dla kolejnych numerow zamowienia. Jesli dla id_zamowienia=10 id_statusu_zamowienia zawiera 1,2 ale nie zawiera 7,9 to zwraca wiersz z id_zamowienia Tak dla przykładu dla id_zamowienia= dzieszienc powino zwrócić wiersz. Natomiast dla id_zamowienia=15 juz nie Podaję jeszcze raz tabele bo powżej jest nieczytelna id_historiia_statusow |id_zamowienia | id_statusu_zamowienia 1 | 10 | 1 2 | 10 | 2 3 | 10 | 3 4 | 10 | 8 5 | 15 | 1 6 | 15 | 2 7 | 15 | 7 8 | 15 | 9 |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Co do 7,9 - to musza byc zamowienia ktore nie mialy dowolengo stanu z 7 i 9 czy takie ktore nie mialy obu na raz?
Ten post edytował dr_bonzo 7.01.2009, 13:50:55 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 6.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli wystąpi stan 7 lub 9 to już nie zwraca rekordu
|
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Hmmm, aaaa - co innego w SQL a co innego w komentarzach (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) (moj blad)
==>
poprawilem poprzedni post |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 6.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie to mi chodziło. Dzięki
Z tym ze dla mnie to unwanted_count = 0 Nigdy nie używałem klauzury HAVING Przeanalizowałem kod i rozjaśniło mi kilka kwestii |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 02:54 |