1. Спросить было бы правильнее так( если я сам правильно понял): « по таблице app надо посчитать количество статусов и добавить поля из других таблиц»
2. По решению - я бы сделал так:
2.1. Подзапрос по app c group by по product_id, name
2.2. А к нему left join остальных таблиц. Левый - в расчете на возможное отсутствие данных в одной из Присоединяемых таблиц
2.3. Если надо проверить в них битые ссылки на app, то полное соединение