SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
CREATE TABLE `products` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(250) NOT NULL, `description` text, `price` decimal(10,2) NOT NULL, `img` varchar(250) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb3; CREATE TABLE `categories` ( `id` int NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `title_for_get` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3; CREATE TABLE `product_category` ( `product_id` int NOT NULL, `category_id` int NOT NULL, KEY `product_id` (`product_id`), KEY `category_id` (`category_id`), CONSTRAINT `product_category_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`), CONSTRAINT `product_category_ibfk_2` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3; CREATE TABLE `filters` ( `id` int NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `input_name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3; CREATE TABLE `product_filter` ( `product_id` int NOT NULL, `filter_id` int NOT NULL, KEY `product_id` (`product_id`), KEY `filter_id` (`filter_id`), CONSTRAINT `product_filter_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`), CONSTRAINT `product_filter_ibfk_2` FOREIGN KEY (`filter_id`) REFERENCES `filters` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3; SELECT p.*, category_titles, filter_titles FROM products as p LEFT JOIN ( SELECT product_id, json_arrayagg(c.title) category_titles from product_category as pc JOIN categories as c ON pc.category_id=c.id GROUP BY product_id ) pc ON p.id=pc.product_id JOIN ( SELECT product_id, json_arrayagg(f.title) filter_titles FROM product_filter as pf JOIN filters as f ON pf.filter_id=f.id GROUP BY product_id ) pf ON p.id=pf.product_id WHERE p.id='2'
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear