![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 259 Pomógł: 1 Dołączył: 3.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Mam takie tabele
* produkty id | nazwa | itd * kategorie id | id_produktu | kategoria i teraz chce jednym zapytaniem moc pobrac wszystkie produkty z jednej kategorii. Robie wiec: Cytat select * from `kategorie` as `k` left join `produkty` as `p` on (`k`.`id_produktu` = `p`.`id`) where `kategoria`="torby" limit 0, 27 i zwraca za wiele rekordow, bo produkty sa przypisane do wielu kategorii, wiec jeden produkt takim zapytaniem wyskakuje 3 razy na liscie. Jak zrobic zeby wystepowal tylko raz, co takiego zle robie ? Moge oczywiscie dodac: Cytat group by `p`.`id` ale wtedy to zapytanie nie nada sie do zliczenia ilosci produktow w calej kategorii przerabiajac je w ten sposob: Cytat select count(`id_produktu`) as `ilosc` from `kategorie` as `k` left join `produkty` as `p` on (`k`.`id_produktu` = `p`.`id`) where `kategoria`="torby" group by `p`.`id` moge niby pobrac wszystkie dane i zliczyc ile tego jest, ale skoro jest mysql count to chcialbym to zrobic "po ludzku". Byc moze blad jest blachy ale jakos nie moge dojsc do porozumienia z tym ... |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie rób LEFT JOIN - zwykły JOIN.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
A jakim cudem masz przypisany produkt 3x do tej samej kategorii?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 259 Pomógł: 1 Dołączył: 3.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 18:08 |