Witam, wiem że temat był dużo razy poruszany ale nadal nie potrafię zastosować go do swoich potrzeb.
Mam tabelę:
CREATE TABLE IF NOT EXISTS `wiadomosci` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`grupa` int(11) NOT NULL,
`wiadomosc` varchar(2048) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
`from_id` int(11) NOT NULL,
`to_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `wiadomosci` (id, grupa, wiadomosc, from_id, to_id) VALUES (`1`, `1`, `Witam`,`20`,`30`);
INSERT INTO `wiadomosci` (id, grupa, wiadomosc, from_id, to_id) VALUES (`2`, `1`, `Witam2`,`20`,`30`);
INSERT INTO `wiadomosci` (id, grupa, wiadomosc, from_id, to_id) VALUES (`3`, `2`, `Witam3`,`22`,`30`);
INSERT INTO `wiadomosci` (id, grupa, wiadomosc, from_id, to_id) VALUES (`4`, `2`, `Witam4`,`30`,`22`);
INSERT INTO `wiadomosci` (id, grupa, wiadomosc, from_id, to_id) VALUES (`5`, `2`, `Witam5`,`22`,`30`);
i chcę wyciągnąć najświeższą wiadomość dla id uzytkownika="30" , gdzie grupowanie jest po polu "grupa", a najświeższa wiadomość to ta, która ma największe "id".
SELECT wiadomosc FROM wiadomosci WHERE from_id=30 OR to_id=30 GROUP BY grupa ORDER BY id DESC
wyciąga mi
Witam
Witam3
a potrzebne
Witam2
Witam5
jakiś pomysł?