![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 184 Pomógł: 0 Dołączył: 11.01.2010 Skąd: Nowa Dęba Ostrzeżenie: (0%) ![]() ![]() |
Na moim portalu chciałbym wyrzucić użytkownikowi płyty, które pobrał a nie ocenił. Tabela plyty i tabela ocena z id plyty i wybrana ocena. Jak policzyć ocenione płyty, które jednocześnie zostały pobrane? Użytkownik mógł ocenić płyt, których nie pobrał. Tu mam mały problem.
SELECT count(id) FROM plyty,oceny WHERE login_pobral=login_ocenil; -------------------- zpodziemia.pl - największa baza dobrych nielegali w POLSCE!
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż strukturę tych tabel.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 27 Dołączył: 19.10.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 184 Pomógł: 0 Dołączył: 11.01.2010 Skąd: Nowa Dęba Ostrzeżenie: (0%) ![]() ![]() |
albumy_pobrania: id | album | login
albumy_ocena: id | album | dodal album - numer ID płyty z bazy Wynikiem ma być ilość nieocenionych pobranych płyt. Tzn: jeżeli użytkownik pobrał 5 płyt nie ocenił żadnej wynik ma być 5 jeżeli użytkownik pobrał 5 płyt a ocenił inne płyty wynik ma być 5 jeżeli użytkownik pobrał 5 płyt i ocenił 3 z nich wynik ma być 2 jeżeli użytkownik pobrał 5 płyt i ocenił te 5 płyt wynik ma być 0
Nie działa, może dlatego, że album=album? Chyba mam:
Jednak nie działa do końca jak trzeba ;( Muszę coś jeszcze dopisać... -------------------- zpodziemia.pl - największa baza dobrych nielegali w POLSCE!
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 184 Pomógł: 0 Dołączył: 11.01.2010 Skąd: Nowa Dęba Ostrzeżenie: (0%) ![]() ![]() |
Sprawdze jak będę w domu. Jeszcze jeden warunek trzeba dopisać. Niektóre płyty są pobrane 2, 3 razy i liczy. Powinno policzyć pojedyńczo niezależnie od ilości pobrań.
-------------------- zpodziemia.pl - największa baza dobrych nielegali w POLSCE!
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 3 Dołączył: 18.10.2017 Ostrzeżenie: (0%) ![]() ![]() |
A mnie zastanawia ile to lat trzeba ćwiczyć żeby zrobić zapytanie z jednym joinem? :V
W ogóle szukasz czegoś sam czy za każdym razem przylatujesz tutaj z czymś co chcesz i liczysz, że ktoś wszystko zrobi? Group by/Distinct - mówi Ci to coś? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 184 Pomógł: 0 Dołączył: 11.01.2010 Skąd: Nowa Dęba Ostrzeżenie: (0%) ![]() ![]() |
Wiem, że trzeba pogrupować. Nikt nie musi mi tego pisać. Spokojnie.
Okej mam, działa. Jeśli wyniki tych dwóch zapytań będą takie same to oznacza, że wszystkie pobrane płyty zostały ocenione ![]() ![]()
-------------------- zpodziemia.pl - największa baza dobrych nielegali w POLSCE!
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Po c. piszesz na forum, skoro nie stosujesz się do odpowiedzi?
W 1 linii towjego kodu użyj JOIN -m się prosi. A gdybyś użył LEFT JOIN (czyli takie zapytanie jak ja powyżej), to zrobiłbyś to za jednym zamachem. Dla 400 rekordów nie odczujesz różnicy, dla 400 tysięcy tak. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 11:15 |