| | |
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
Autor | Správa |
---|
Registrovaný: 22.03.07 Prihlásený: 04.07.14 Príspevky: 344 Témy: 97 |
Nazdarek. Potreboval by som poradit. Mam tabulku v ktorej su ulozene spravy..No a potreboval by som z tejto tabulky vypisat zoznam vsetkych uzivatelov s ktorymi som si vymenil spravu(hoci len jednu) ale tak, aby pri kazdom uzivatelovi bola posladna sprava zo vzajomnej komunikacie-bez ohladu na to ci ta sprava bola urcena pre uzivatela, alebo pre mna..Skusil som si urobit takyto select, lenze ten nefunguje ako ma..
Kód: SELECT post.id, post.prijmatel, post.sprava, post.odosielatel, post.datum FROM post JOIN (SELECT prijmatel, MAX(datum) as datum FROM post WHERE prijmatel='$uzivatel' OR odosielatel='$uzivatel' GROUP BY prijmatel) AS last ON post.datum = last.datum ORDER BY datum DESC
Tiez som nasiel nieco podobne tu na fore, akurat ze v tomto pripade nevypise pri kazdom uzivatelovi poslednu spravu.
Vdaka za kazdu pomoc..
PS: myslim, ze facebook ma takto riesene spravy.. ak si dobre pamätam..
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
mozes pouzit a mierne pozmenit kod z tebou odkazovaneho postu - malo by stacit zoradit zaznamy podla datumu alebo id zostupne a nasledne zgrupit...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 22.03.07 Prihlásený: 04.07.14 Príspevky: 344 Témy: 97 | Napísal autor témy newboy1: 24.03.2012 9:44 | |
|
stenley..upravil som ten select podla toho prispevku nasledovne:
Kód: SELECT IF(prijmatel = '$uzivatel', odosielatel, prijmatel) AS user, id, sprava, MAX(datum) AS datum FROM post WHERE odosielatel= '$uzivatel' OR prijmatel = '$uzivatel' GROUP BY user ORDER BY datum ASC
Toto mi urobi ten zoznam uzivatelov aj poradie, ale nedosiahnem tym to co potrebujem..A teda, ze pri kazdom uzivatelovi sa ma zobrazit posledna sprava (odoslana/prijata) zo spolocnej konverzacie..
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
najskor ich musis zoradit, cize ziadne FROM post, ale FROM (SELECT ... ORDER BY datum DESC)
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 22.03.07 Prihlásený: 04.07.14 Príspevky: 344 Témy: 97 | Napísal autor témy newboy1: 24.03.2012 19:19 | |
|
stenley...No skusil som to upravit, tak ako hovoris:
Kód: "SELECT IF(prijmatel = '$uzivatel', odosielatel, prijmatel) AS user FROM (SELECT sprava, datum FROM post WHERE prijmatel = '$uzivatel' OR odosielatel = '$uzivatel' ORDER BY datum DESC) GROUP BY user"
lenze teraz to absolutne nefunguje..Nevykona mi to ziadny vyber z DB..Fakt uz tomu nerozumiem
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
ako chces len zo spravy a datumu vyselectovat odosielatela, resp. prijimatela? lebo to sa snazi tvoj select spravit
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 22.03.07 Prihlásený: 04.07.14 Príspevky: 344 Témy: 97 | Napísal autor témy newboy1: 25.03.2012 9:00 | |
|
Diky moc..Uz to funguje presne ako som potreboval. Tu je kod ako som to upravil:
Kód: "SELECT IF(prijmatel = '$uzivatel', odosielatel, prijmatel) AS user, id, sprava, datum FROM (SELECT id, prijmatel, odosielatel, sprava, datum FROM post WHERE prijmatel = '$uzivatel' OR odosielatel = '$uzivatel' ORDER BY datum DESC) AS tmp GROUP BY user ORDER BY datum DESC"
stenley..ale chcem sa opytat na jednu vec.. Preco musi byt napr. ak chcem vypisat obsah sprava
uvedeny aj pred FROM aj v selecte za FROM..Inac mi to obsah nevypise..To iste plati aj pre ostatne premenne ..ci uz pre datum, alebo id.. Proste to musi byt tak ako som to uviedol v tom kode..A tiez preco musim pridat za selectom ten alias.. teda AS tmp..ked s nim potom uz vôbec nepracujem ??
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
ak chces ziskat obsah spravy, musi sa takato informacia v zdroji dat nachadzat - zdroj dat ale nie je v tvojom pripade cela tabulka post, ale len jej cast - presne taka, aku si vyselectujes za prvym from - povodne si selectoval len spravu a datum, cize si sa snazil ziskat stlpec odosielatel/prijimatel z "ciastocnej tabulky post", ktora obsahovala len stlpce sprava a datum, co ti logicky neslo - ved skus si ten vnutorny select spustit samostatne, uvidis, co ti to vrati a potom pochopis, preco je to tak... co sa tyka toho aliasu, neviem presne, preco ho tam mysql pozaduje, ked sa nevyuziva spojenie s inou tabulkou - bez toho zrejme nevie pracovat, preto to tam treba uvadzat...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|