

MySQL dotaz
Ahoj.
Nedaří se mi pořešit specielní sql dotaz.
Už jste mi dvakrát úspěšně pomohli.
Mám 2 tabulky.
první se jmenuje:
newsletters_
A obsahuje
id a nazev
Potom mám druhou tabulku newsletters_skupiny_hlavni, která obsahuje sloupce čísla:
idNewsletter a
idSkupiny
A já chci vytáhnout dotazem:
- všechny id a nazev z newsletters_, přičemž bude výsledek obsahovat ještě navíc sloupec checkbox_checked, který bude nenulový v případech, kdy se id z newsletters_ shoduje s idNewsletter v tabulce newsletters_skupiny_hlavni.
Navíc potřebuji, aby to celé bylo podmíněno jen pro konkrétní newsletters_.id
Zatím jsem došel sem:
SELECT id, nazev, NSH.idNewsletter checkbox_checked FROM skupina_hlavni LEFT JOIN newsletters_skupiny_hlavni NSH ON NSH.idNewsletter = skupina_hlavni.id where coalesce(NSH.idNewsletter, 8 ) = 8 group by id
Nicméně někde je chyba a ve sloupci checkbox_checked nefigurují řádně všechny potřebné hodnoty.
Zde přikládám příkazy pro vytvoření tabulky s testovacími daty:
--
-- Struktura tabulky `newsletters_skupiny_hlavni`
--
CREATE TABLE IF NOT EXISTS `newsletters_skupiny_hlavni` (
`idNewsletter` int(11) unsigned NOT NULL,
`idSkupiny` int(11) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Obsahuje vazbu mezi ID newsletteru a ID skupiny';
--
-- Vypisuji data pro tabulku `newsletters_skupiny_hlavni`
--
INSERT INTO `newsletters_skupiny_hlavni` (`idNewsletter`, `idSkupiny`) VALUES
(8, 8),
(8, 6),
(2, 5);
Druhá tabulka:
-- Struktura tabulky `newsletters_`
--
CREATE TABLE IF NOT EXISTS `newsletters_` (
`id` int(10) unsigned NOT NULL auto_increment,
`nazev` varchar(100) collate cp1250_czech_cs NOT NULL,
`datum_v_letaku` varchar(10) collate cp1250_czech_cs NOT NULL,
`text` text collate cp1250_czech_cs NOT NULL,
`datum_expirace` date NOT NULL,
`datum_odeslan` date NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1250 COLLATE=cp1250_czech_cs AUTO_INCREMENT=9 ;
--
-- Vypisuji data pro tabulku `newsletters_`
--
INSERT INTO `newsletters_` (`id`, `nazev`, `datum_v_letaku`, `text`, `datum_expirace`, `datum_odeslan`) VALUES
(6, 'pokusný newsletter', '20.12.2012', '<h4 id=\\"\\\\"\\\\\\\\"faq1_17\\\\\\\\" ;\\\\"\\">\r\n <a href=\\"\\\\\\" id=\\"\\\\"\\\\\\\\"faqmysqlversions\\\\ \\\\"\\\\"\\">1.17 Which MySQL versions does phpMyAdmin support?</a></h4>\r\n<p>\r\n All MySQL versions from 3.23.32 till 5.0 (except for 4.1.0 and 4.1.1) are fully supported. Please note that the older your MySQL version is, the more limitations you will have to face.<br />\r\n phpMyAdmin may connect to your MySQL server using php's classic <a href=\\"\\\\\\">MySQL extension</a> as well as the <a href=\\"\\\\\\">improved MySQL extension (MySQLi)</a> that is available in php 5.0.<br />\r\n Either way, the developers of both extensions recommend to use the classic extension for MySQL 4.0 and below and MySQLi for MySQL 4.1 and newer.<br />\r\n When compiling php, we strongly recommend that you manually link the MySQL extension of your choice to a MySQL client library of at least the same minor version since the one that is bundled with some php distributions is rather old and might cause problems <a href=\\"\\\\\\"> (see <abbr asked=\\"\\" title=\\"\\\\\\\\\\">FAQ</abbr> 1.17a)</a>. If your webserver is running on a windows system, you might want to try MySQL's <a connector=\\"\\" dev.mysql.com=\\"\\" downloads=\\"\\" href=\\"\\\\\\\\\\" http:=\\"\\" php=\\"\\">Connector/PHP</a> instead of the MySQL / MySQLi extensions that are bundled with the official php Win32 builds.<br />\r\n MySQL 5.1 is not yet supported.</p>\r\n<p>\r\n </p>\r\n<p>\r\n </p>\r\n', '2012-09-20', '0000-00-00'),
(2, 'pokusny nazev', '22.3.2014', 'teext', '2012-09-11', '2012-09-09'),
(5, 'Název newsletteru:', '14-09-2012', '<p>\r\n text</p>\r\n', '0000-00-00', '0000-00-00'),
(8, 'I Wanna rock renamed', '20.12.2012', '<h4>\r\n MŮJ NADPIS</h4>\r\n', '2016-01-20', '0000-00-00');
Díky všem, kteří to dočetli až sem.