Така че имате нужда от 7 произволни записа за всеки тип продукт (7 * 12 записа). На пръв поглед просто търсите съюз.
(SELECT * FROM products WHERE product_type_id=1 AND deleted='n' ORDER BY RAND() LIMIT 7)
UNION ALL
(SELECT * FROM products WHERE product_type_id=2 AND deleted='n' ORDER BY RAND() LIMIT 7)
UNION ALL
...
UNION ALL
(SELECT * FROM products WHERE product_type_id=12 AND deleted='n' ORDER BY RAND() LIMIT 7)
Ако трябва да поръчате целия набор от резултати, тогава можете да използвате ORDER BY
клауза след целия UNION
.