piszę jedno z moich pierwszych zapytań skorelowanych i za bardzo nie wiem co robię źle:
SELECT * FROM komentarze nad WHERE id IN ( SELECT id FROM komentarze pod WHERE pod.id_do = nad.id ) OR id_do =0
zapytanie daje wyniki tylko dla drugiego warunku, a to co jest w nawiasie w ogóle nic nie zwraca. Oczekiwanym przeze mnie rezultatem jest zbiór wierszy postaci:
komentarz_glowny 1
komentarz 1 do komentarz_glowny 1
komentarz do komentarza 1 do komentarz_glowny 1
komentarz 2 do komentarz_glowny 1
komentarz do komentarz 2 do komentarz_glowny 1
Efektem finalnym ma być coś jak komentarze np. na onecie tylko, że wszystkie komentarze są widoczne od razu z pod komentarzami.
CREATE TABLE IF NOT EXISTS `komentarze` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `id_do` int(10) UNSIGNED DEFAULT NULL, `tytul` varchar(200) DEFAULT NULL, `tresc` text, PRIMARY KEY (`id`), KEY `id_do` (`id_do`) ) ENGINE=InnoDB DEFAULT CHARSET=latin2 AUTO_INCREMENT=5 ; INSERT INTO `komentarze` (`id`, `id_do`, `tytul`, `tresc`) VALUES (1, 0, 'test', 'test tresci'), (2, 1, 'odp do 1', 'tresc...'), (3, 2, 'do 2', '.....'), (4, 0, 'glowny', 'test');