Autor | Zpráva | ||
---|---|---|---|
pcmanik Profil |
Zdravím, snažím sa napísať dotaz, ktorý mi vyberie poslednú správu, ktorú má daný užívateľ so všetkými ostatnými užívateľmi. V podstate to funguje, len namiesto ich prvej správy sa mi nedarí zobraziť ich poslednú správu.
Prikladám dotaz, ktorý som doteraz spravil. SELECT sprava, u1.meno, u1.priezvisko, u1.id, u2.meno, u2.priezvisko, u2.id FROM spravy LEFT JOIN uzivatelia u1 ON u1.id = od LEFT JOIN uzivatelia u2 ON u2.id = pre WHERE od = 1 OR pre = 1 GROUP BY u2.id ORDER BY cas DESC Ďakujem za pomoc :) |
||
Kcko Profil |
#2 · Zasláno: 1. 8. 2012, 21:04:19
GROUP BY MAX(u2.id)
|
||
pcmanik Profil |
#3 · Zasláno: 1. 8. 2012, 21:10:05
Kcko:
Hadze mi to error - #1111 - Invalid use of group function |
||
Kcko Profil |
#4 · Zasláno: 1. 8. 2012, 21:18:03
Hod nekam vzorek dat a strukturu tabulky, nejsem Kajman abych si predstavil matrix a vyfikl ho z hlavy :D
|
||
pcmanik Profil |
tabulka uzivatelia
`id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `meno` VARCHAR( 15 ) NOT NULL, `priezvisko` VARCHAR( 40 ) NOT NULL tabulka spravy `id` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `od` SMALLINT UNSIGNED NOT NULL, `pre` SMALLINT UNSIGNED NOT NULL, `sprava` text NOT NULL, `cas` DATETIME NOT NULL Výsledok po mojom dotaze je Ako vravím, funguje to v podstate správne, až na to že to zobrazi prvu spravu v konverzácii a nie poslednú. A tá tvoja poznámka ma veľmi pobavila, tiež mám niekedy ten pocit :D |
||
Kcko Profil |
#6 · Zasláno: 1. 8. 2012, 21:40:25
pcmanik:
A ty data si tam mam jako navkladat ruco jo? ;) Proste sem nebo nekam hod export kterej si u sebe pustim, abych to mohl vyzkouset a nedelal veci okolo a navic. |
||
Kajman Profil |
#7 · Zasláno: 2. 8. 2012, 00:15:47
Pokud mají novější zprávy vyšší id, tak by snad šlo něco jako
SELECT s.sprava, u1.meno, u1.priezvisko, u1.id, u2.meno, u2.priezvisko, u2.id FROM spravy s JOIN (SELECT Max(id) id FROM (SELECT Max(id) id, od uziv FROM spravy WHERE pre = 1 GROUP BY od UNION ALL SELECT Max(id) id, pre uziv FROM spravy WHERE od = 1 GROUP BY pre) x GROUP BY uziv) m ON s.id = m.id LEFT JOIN uzivatelia u1 ON u1.id = s.od LEFT JOIN uzivatelia u2 ON u2.id = s.pre |
||
pcmanik Profil |
#8 · Zasláno: 2. 8. 2012, 17:56:14
Kajman:
Funguje presne tak ako som si to predstavoval, ďakujem veľmi pekne :) Kcko: Prepáč, že som ti sem už nedal tie dáta, ale večer som musel ísť preč z PC. |
||
Kcko Profil |
#9 · Zasláno: 2. 8. 2012, 18:01:06
pcmanik:
V poho, neni treba dat kdyz je Kajman online :) |
||
Časová prodleva: 12 let
|
0