/* UPDATE coupons cp , (SELECT cp.id cpid , JSON_ARRAYAGG(cb.brand_id) cpn_brands FROM `coupons` cp , coupon_brands cb WHERE cp.id = cb.coupon_id GROUP BY cp.id) iqry SET cp.brands = iqry.cpn_brands WHERE cp.id = iqry.cpid UPDATE coupons cp , (SELECT cp.id cpid , JSON_ARRAYAGG(cb.cat_id) cpn_cats FROM `coupons` cp , coupon_categories cb WHERE cp.id = cb.coupon_id GROUP BY cp.id) iqry SET cp.cats = iqry.cpn_cats WHERE cp.id = iqry.cpid UPDATE coupons cp , (SELECT cp.id cpid , JSON_ARRAYAGG(cb.tag_id) cpn_tags FROM `coupons` cp , coupon_tags cb WHERE cp.id = cb.coupon_id GROUP BY cp.id) iqry SET cp.tags = iqry.cpn_tags WHERE cp.id = iqry.cpid SELECT * FROM `coupons` WHERE JSON_CONTAINS(brands,'1') AND JSON_CONTAINS(tags,'1') AND JSON_CONTAINS(cats,'7') SELECT * FROM coupons cp JOIN coupon_categories ct ON cp.id = ct.coupon_id JOIN coupon_brands cb ON cp.id = cb.coupon_id JOIN coupon_tags ct ON ct.coupon_id = cp.id SELECT DISTINCT cp.* FROM coupons cp JOIN coupon_categories ct ON cp.id = ct.coupon_id JOIN coupon_brands cb ON cp.id = cb.coupon_id JOIN coupon_tags cg ON cg.coupon_id = cp.id WHERE ct.cat_id IN (1,7) AND cb.brand_id IN (1,25,88) AND cg.tag_id IN (1,9) SELECT * FROM `coupons` WHERE JSON_OVERLAPS(brands,'[1,25,88]') AND JSON_OVERLAPS(tags,'[1,9]') AND JSON_OVERLAPS(cats,'[7,1]') */