Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Pomoc w zapytaniu do dwóch tabel
Forum PHP.pl > Forum > Przedszkole
Poker
Witam,

Mam problem z pobraniem wyników z dwóch tabel i nie mogę sobie z tym poradzić.

Tabele wyglądają tak



TABELA 1 : lubie ** obrazki które lubi użytkownik
id
id_obrazek
id_user




TABELA 2 : obrazek ** dodane obrazki przez użytkownika
id
user_id


Użytkownik który doda obrazek automatycznie go lubi
Zależy mi na wyciągnięciu wszystki rekrodów z tabeli lubie danego użytkownika, ale w ten sposób by nie zliczało obrazków które dodał ten użytkownik, czyli tylko te obrazki którym użytkownik kliknął LUBIE a sam ich nie dodał.

Próbowałem kilkanaście różnych zapytań za każdym razem otrzymuję wynik wszystkich LUBIE.

Czy ktoś mógłby mi pomóc? Bo już 1,5 godziny próbuję a ciągle bez efektów.
askone
  1. SELECT
  2. COUNT(LUBIE.id)
  3. FROM LUBIE
  4. INNER JOIN OBRAZEK ON OBRAZEK.id = LUBIE.id_obrazek
  5. WHERE LUBIE.id_user <> $userid


Pisane całkowicie bez sprawdzenia, ale sądzę iż to powinno być coś w ten deseń wink.gif W miejsce $userid wstawiasz wartość id dla użytkownika, którego "lubie" chcesz zliczyć

Pozdrawiam
Poker
No niestety.

Zwraca mi 1 rekord, a powinno zwrócić ich 19.

Ponieważ wszystkich LUBIE mam 32, a dodanych obrazków 13.
askone
Ale zwraca Ci jeden rekord z sumą "19" czy też jeden rekord z sumą "1"? Zapytanie zlicza rekordy więc zawsze zwróci pojedynczy rekord...

edit:
  1. SELECT
  2. COUNT(id)
  3. FROM LUBIE
  4. WHERE
  5. LUBIE.id_user = $userid
  6. AND
  7. LUBIE.id_obrazek NOT IN (
  8. SELECT id
  9. FROM OBRAZEK
  10. WHERE user_id <> $userid
  11. )


Sprawdź ewentualnie to co powyżej...
Poker
Tak wiem że zlicza wynik.

Sam Count wyświetla mi wynik 515,

w LUBIE mam 547 rekordów
w OBRAZEK mam 407 rekordów


Dla tego użytkownika którego cały czas testuję, powinien wyjść wynik 19. Wszystkich LUBIANYCH ma 32 a dodanych 13.
binbash
Może tak
  1. SELECT lubie.* FROM lubie,obrazek WHERE lubie.id_user=$twoj_user AND lubie.id_obrazek NOT IN (SELECT obrazek.id FROM obrazek WHERE obrazek.user_id=$twoj_user)


Jak ma tylko liczyć a nie wyciągać dane to COUNT(lubie.id)
Poker
Lekko przerobiłem i działa
Kod
SELECT id_obrazek FROM lubie WHERE lubie.id_user='$id' AND lubie.id_obrazek NOT IN (SELECT id FROM obrazek WHERE user_id='$id')



Bardzo dziękuje za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.