Autor Zpráva
Taps
Profil
zdravím, mám níže uvedený select, který mi, k danému uživatele vybere diskusní témata, která sleduje. U jednotlivých témat zobrazít počet celkových příspěvků + počet přečtených příspěvků, dále pak datum posledního příspěvku. Select mi vybere požadované udaje, akorát je problém s tím že se mi udaje vypisují dvakrát. Mohl by mi někdo poradit jak níže uvedený dotaz upravit či zoptimalizovat tak aby se mi hodnoty vypsali jen jednou. děkuji
select cat.nazev as nazev,max(UNIX_TIMESTAMP(datum)) as posledni,pp.precteno as prectene,count(udp.id) as pocet, cat.id as id  
from mgr_oboryPredmety  cat
left join predmetyStudenti ps on cat.id=ps.id_predmet 
left join diskusePrispevky udp on cat.id=udp.id_diskuse
left join diskusePrecteno pp on cat.id=pp.id_diskuse
where ps.id_student='5' and cat.semestr='1' group by udp.id order by (cat.nazev='Ostatni') ASC,cat.nazev

struktura tabulek
CREATE TABLE `diskusePrecteno` (
  `id_ctenar` smallint(6) NOT NULL,
  `id_diskuse` smallint(6) NOT NULL,
  `precteno` smallint(6) NOT NULL,
  `cas` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs;


CREATE TABLE `diskusePrispevky` (
  `id` smallint(6) NOT NULL AUTO_INCREMENT,
  `id_diskuse` smallint(6) DEFAULT NULL,
  `reakce` smallint(6) DEFAULT NULL,
  `id_autora` smallint(6) NOT NULL,
  `prispevek` text COLLATE utf8_czech_ci NOT NULL,
  `datum` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `zobrazit` enum('ano','ne') COLLATE utf8_czech_ci NOT NULL,
  `mailem` enum('ano','ne') COLLATE utf8_czech_ci NOT NULL,
  `test` enum('ano','ne') COLLATE utf8_czech_ci NOT NULL DEFAULT 'ne',
  PRIMARY KEY (`id`),
  KEY `datum` (`datum`),
  FULLTEXT KEY `prispevek` (`prispevek`)
) ENGINE=MyISAM AUTO_INCREMENT=2727 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;


CREATE TABLE `oboryPredmety` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nazev` text COLLATE utf8_czech_ci NOT NULL,
  `semestr` enum('1','2','3','4') COLLATE utf8_czech_ci NOT NULL,
  `povinne` enum('ano','ne') COLLATE utf8_czech_ci NOT NULL DEFAULT 'ano',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;


CREATE TABLE `predmetyStudenti` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_student` int(11) NOT NULL,
  `id_predmet` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;

Kajman_
Profil *
Nejsem si jistý, ale nemá tam být v group by něco jiného? třeba
group by udp.id_diskuse


Případně doplnit podmínku přečtení od správného uživatele
left join diskusePrecteno pp on cat.id=pp.id_diskuse and ps.id_student=pp.id_ctenar
Taps
Profil
Kajman:
díky funguje
Toto téma je uzamčeno. Odpověď nelze zaslat.

0