Autor Zpráva
Taps
Profil
Mám níže uvedenou strukturu tabulek. U jednotlivých akcí má uživatel možnost přihlásit se nebo odhlásit se z dané akce
CREATE TABLE `zakazka_akce` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `termin` int(11) NOT NULL,
  `misto` varchar(255) COLLATE utf8_czech_ci NOT NULL,
  `typ` text COLLATE utf8_czech_ci NOT NULL,
  `informace` text COLLATE utf8_czech_ci NOT NULL,
  `uzaverka` int(11) NOT NULL,
  `kontakt` text COLLATE utf8_czech_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;


CREATE TABLE `zakazka_prihlaseni` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `idAkce` int(11) NOT NULL,
  `idUzivatele` int(11) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=114 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;


CREATE TABLE `zakazka_uzivatele` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `jmeno` varchar(255) COLLATE utf8_czech_ci NOT NULL,
  `heslo` text COLLATE utf8_czech_ci NOT NULL,
  `email` varchar(255) COLLATE utf8_czech_ci NOT NULL,
  `pravo` enum('0','1') COLLATE utf8_czech_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;

používám níže uvedený dotaz, ale bohužel mi nefunguje správně. Pokud je uživatel přihlášen u dvou akcí, tak se mu jen u jedné vypíše že je přihlášen
select *,za.uzaverka as bloknuti,FROM_UNIXTIME(termin, '%d.%m.%Y %H:%i') as termin1,FROM_UNIXTIME(uzaverka, '%d.%m.%Y %H:%s') as uzaverka1,za.id as id,zu.id as uzivatel,IF(zp.idUzivatele=zu.id,'prihlasen','neprihlasen') as podminka from 
   zakazka_akce za left join zakazka_prihlaseni zp on za.id=zp.idAkce left join
   zakazka_uzivatele zu on  zp.idUzivatele=zu.id and zp.idUzivatele='2' group by za.id
   order by termin ASC
Mohl by mi někdo poradit jak dotaz upravit.
Pokud uživatel není přihlášen tak není jeho záznam v tabulce zakazka_prihlaseni
Děkuji
Kajman
Profil
Ta podmínka AND zp.iduzivatele = '2' má být asi v tom prvním joinu. Druhý asi ani není potřeba...
SELECT *,
       za.uzaverka                                                AS bloknuti,
       From_unixtime(termin, '%d.%m.%Y %H:%i')                    AS termin1,
       From_unixtime(uzaverka, '%d.%m.%Y %H:%s')                  AS uzaverka1,
       za.id                                                      AS id,
       zp.iduzivatele                                             AS uzivatel,
       IF(zp.iduzivatele IS NOT NULL, 'prihlasen', 'neprihlasen') AS podminka
FROM   zakazka_akce za
       LEFT JOIN zakazka_prihlaseni zp
         ON za.id = zp.idakce
            AND zp.iduzivatele = '2'
GROUP  BY za.id
ORDER  BY termin ASC 
Taps
Profil
Kajman:
Děkuji

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: