Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie danych z dwóch tabel i ich JOINowanie.
Forum PHP.pl > Forum > Bazy danych > MySQL
Ania-678
Witam serdecznie.

Otóż mam 2 tabele, jedną z tematami, drugą z oznaczeniami czy dany user "czytał" dany temat.

Ta druga tabelka ma pola topic_id oraz user_id.

Całość wyciągam w ten sposób:

  1. SELECT ft.topic_id, ft.nazwa, fr.topic_id AS read_id, fr.user_id FROM ft LEFT JOIN fr USING (topic_id) WHERE ft.cat_id='.$_GET['cat'].' AND (fr.user_id='.$userid.' OR fr.user_id IS NULL)



I niezależnie od tego czy w 2 tabeli będą powiązane rekordy czy nie to ma zwrócić dane z tabeli 1, jednak jest ten ferelny warunek where na tę 2 tabelę... Próbowałam go obejść w taki sposób:

  1. AND (fr.user_id='.$userid.' OR fr.user_id IS NULL)


Niestety nie działa to do końca jak powinno... sciana.gif

Może ma ktoś jakieś pomysły?
wookieb
Zamien
na
  1. SELECT ft.topic_id, ft.nazwa, fr.topic_id AS read_id, fr.user_id FROM ft LEFT JOIN fr ON (fr.topic_id=ft.topic_id AND fr.user_id='.$userId.') WHERE ft.cat_id='.$_GET['cat']
Method
http://en.wikipedia.org/wiki/Join_(SQL)


Pisz z (+) łatwiej się czyta.
  1. SELECT ft.topic_id, ft.nazwa, fr.topic_id AS read_id, fr.user_id
  2. FROM ft.topic_id (+)= fr.topic_id
  3. WHERE ft.cat_id='.$_GET['cat'].' AND fr.user_id(+)='.$userid.'




Nie mam nic pod reką gdzie moglbym testnac ale sposob rozwiazania mniej wiecej tak
Ania-678
Wow, nie wiedziałam że można dawać wiele warunków łączenia tabel... ale zadziałało tongue.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.