SELECT *, (SELECT COUNT(id) AS x FROM zdjecia z WHERE folder_dir = k.id) AS ile, (SELECT SUM(rozmiar) AS x FROM zdjecia z WHERE folder_dir = k.id) AS rozmiar FROM katalogi k WHERE k.id_uzytkownik = 1;
SELECT k.*, folder_dir,COUNT(z.id) AS x, sum(z.rozmiar) AS y FROM zdjecia z INNER JOIN katalogi k ON k.id = z.folder_dir WHERE NOT folder_dir IS NULL AND z.id_uzytkownik = 1 GROUP BY folder_dir;
CREATE TABLE IF NOT EXISTS `zdjecia` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `nazwa` varchar(40) COLLATE utf8_unicode_ci NOT NULL, `data_dodania` datetime NOT NULL, `opis` varchar(400) COLLATE utf8_unicode_ci DEFAULT NULL, `folder_dir` int(10) UNSIGNED DEFAULT NULL, `glosy` int(10) UNSIGNED NOT NULL, `ilosc_glosow` int(10) UNSIGNED NOT NULL, `id_kategoria` int(10) UNSIGNED NOT NULL, `nazwa_url` varchar(40) COLLATE utf8_unicode_ci NOT NULL, `rozmiar` int(10) UNSIGNED NOT NULL, `id_uzytkownik` int(10) UNSIGNED NOT NULL, `rozdzielczosc` varchar(20) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`), KEY `FK_zdjeca_1` (`id_kategoria`) USING BTREE, KEY `FK_zdjecia_2` (`id_uzytkownik`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `katalogi` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `nazwa` varchar(45) COLLATE utf8_unicode_ci NOT NULL, `nazwa_url` varchar(45) COLLATE utf8_unicode_ci NOT NULL, `id_uzytkownik` int(10) UNSIGNED NOT NULL, `data` datetime NOT NULL, PRIMARY KEY (`id`), KEY `FK_katalogi_1` (`id_uzytkownik`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=19 ;
Z obu rozwiązań nie jestem zadowolony. Pewnie da się to zrobić lepiej. Z góry dzięki za odpowiedzi