Autor Zpráva
Neas
Profil
ahoj
rád bych si na svých stránkách udělal něco podobného, jako hlavní stránka facebooku po přihlášení, tj. lidé píší příspěvky a vám se zobrazí jen příspěvky vaše a lidí, které máte ve friendlistu. narazil jsem však na problém při sql dotazu, který z databáze tyto příspěvky vybírá.
zatím se mi povedlo udělat pouze dotaz, který vybere všechny příspěvky (které nejsou odpověďmi, tohle budu řešit později), bez ohledu na friendlist:
SELECT c.author_id, c.time, c.text, a.name, a.avatar, a.rank FROM comments c
LEFT JOIN users a ON c.author_id=a.id
WHERE c.parent_id=0 AND c.which_column="user_wall"
ORDER BY c.time DESC LIMIT 30

(limit taky budu řešit až potom, pro jednoduchost jsem dal 30, v budoucnu přidám stránkovač.)
přikládám také strukturu tabulky friendlists:
id | request_send (ten, co žádost poslal) | recipient(ten, komu je adresována) | done (je-li žádost již přijata)

rád bych vás tímto požádal o pomoc s sql dotazem,
děkuji
EDIT: ve zkratce potřebuji "jen" nějak přidat podmínku:
WHERE c.author_id = jakékoli request_send nebo recipient z friendlists tam, kde se request_send nebo recipient (prostě ten druhý sloupec) rovná id právě přihlášeného uživatele
Alphard
Profil
Nejsem si jist, jestli je tabulka friendlist navržená ideálně, možná spíš více ty relace "rozbalovat", něco jako id_user a id_friend s tím, že pro přátelství by byly potřeba dva záznamy. Záleží, co jiného s tím děláte.

V současném stavu asi 2x pomocí left join připojit tabulku friendlist (pokaždé podle jiného sloupce) a pak dát podmínku, že aspoň jeden atribut nesmí být null, ale netusím, jak to bude rychlé (nezapomeňte na indexy).
Neas
Profil
a když tabulku předělám podle Tvé rady, pak bych toho mohl docílit jak?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0