Mam taka strukture tabel:
CREATE TABLE categories ( id TINYINT(2) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, name CHAR(30) NOT NULL, queue TINYINT(2) UNSIGNED NOT NULL DEFAULT 1, items SMALLINT(5) UNSIGNED NOT NULL DEFAULT 0, visible ENUM('0', '1') NOT NULL DEFAULT '1' ) Engine=MyISAM; CREATE TABLE articles ( id MEDIUMINT(8) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, title CHAR(60) NOT NULL, short CHAR(255) NOT NULL, content TEXT NOT NULL, date DATETIME NOT NULL, category TINYINT(2) UNSIGNED NOT NULL, visible ENUM('0', '1') NOT NULL DEFAULT '1', FULLTEXT (title, short, content) ) Engine=MyISAM;
Chcialbym jednym zapytaniem wybrac ostatnie (najnowsze) artykuly z kazdej kategorii.
Probowalem w ten sposob:
SELECT a.id, a.title, a.short, a.content, a.date, c.name FROM articles a, categories c WHERE a.visible="1" AND a.category=c.id GROUP BY a.category SELECT c.id, c.name, (SELECT a.id, a.title, a.short, a.content, a.date FROM articles a WHERE a.visible="1" AND a.category=c.id ORDER BY date LIMIT 1) FROM categories c ORDER BY c.queue SELECT c.id, c.name, a.title FROM categories c LEFT JOIN articles a ON c.id=a.category GROUP BY c.id ORDER BY a.date DESC
1 i 3 sposob pokazuja po jednym poscie z kazdej kategorii ale jest to pierwszy post (najstarszy). Sposob 2 (nieco silowy

#1241 - Operand should contain 1 column(s)
Prosze o pomoc.
PS: juz trzeci raz probuje dodac posta - za kazdym razem nie widze aby sie pojawil. Sory za ewentualne duble :/