Autor Zpráva
Mixalko
Profil *
zdravím vás, už som asi prepracovaný alebo neviem, ale neviem si dať rady s jedným dopytom
dbquery("SELECT t1.*,t2.lastvisit,t2.nick,t2.id FROM priatelia t1 JOIN uzivatelia t2 ON t1.with_id=t2.id WHERE t1.user_id='".$userdata['id']."' AND t2.lastvisit>= '".(time()-60*20000)."' ORDER BY t2.nick ASC");

toto mi funguje a pekne vyroluje priateľov, ktorí sú online a usporiada ich podľa abecedy.. vec, s ktorou si neviem rady je, že mám tretiu tabuľku chat, kde sú polia id, od, komu, cas, videne, sprava, pričom od je ID od ktorého prišla správa, komu je ID komu je určená, čas je jasný, videne je nastavené na 0 ak si to ešte KOMU neprečítal a správa je jasné.. potrebujem do toho dopytu pridať túto tretiu tabuľku chat tak, aby sa následne usporiadali ľudia v prvom rade podľa toho, či mi prišla správa, resp. či je pri OD a KOMU v poli VIDENE vložená 0 a v druhom rade podľa abecedy
dúfam, že pochopíte, čo som napísal.. vedel by niekto pomôcť?
Draffix
Profil
Asi si nejsem moc jist, jestli jsem to správně pochopil, ale nestačilo by k tomu dotazu "přidružit" ještě tu třetí tabulku a pak to to řadit prvně podle videne a pak podle abecedy? Jakože ORDER BY `videne` DESC, `t2.nick`?
Mixalko
Profil *
ale ako ju pridružiť?
Draffix
Profil
stejně jako ty dvě předchozí. Tedy před klauzuli where přidáš ještě JOIN chat C ON a klíče. Nevím jaké máš vazby mezi sebou a tak těžko dál pokračovat
Kajman
Profil
Možná něco jako
SELECT t1.*,
       t2.lastvisit,
       t2.nick,
       t2.id
FROM   priatelia t1
       JOIN uzivatelia t2
         ON t1.with_id = t2.id
       LEFT JOIN chat ch
              ON ch.od = t1.with_id
                 AND ch.komu = t1.user_id
                 AND ch.videne = 0
WHERE  t1.user_id = '$iduzivatele'
       AND t2.lastvisit >= '$hranice'
GROUP  BY t1.with_id
ORDER  BY ch.od IS NULL,
          t2.nick ASC 

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: