[PHP][MySQL] Sumowanie, łączenie 2 tabel |
[PHP][MySQL] Sumowanie, łączenie 2 tabel |
27.01.2018, 15:00:25
Post
#1
|
|
Grupa: Zarejestrowani Postów: 182 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!
|
|
|
27.01.2018, 20:46:14
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) |
Pokaż strukturę tych tabel.
-------------------- |
|
|
27.01.2018, 21:49:13
Post
#3
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 27 Dołączył: 19.10.2014 Ostrzeżenie: (0%) |
|
|
|
30.01.2018, 09:06:54
Post
#4
|
|
Grupa: Zarejestrowani Postów: 182 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!
|
|
|
30.01.2018, 10:01:37
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) |
|
|
|
30.01.2018, 10:28:57
Post
#6
|
|
Grupa: Zarejestrowani Postów: 182 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!
|
|
|
30.01.2018, 10:50:36
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ś? |
|
|
30.01.2018, 17:39:30
Post
#8
|
|
Grupa: Zarejestrowani Postów: 182 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 Dziękuje wszystkim za pomoc!
-------------------- zpodziemia.pl - największa baza dobrych nielegali w POLSCE!
|
|
|
31.01.2018, 11:27:02
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. |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 20:31 |