How to do this query in sql? : Im new with postgresql and databases. 

I have three tables Product, Supplier and Secondary_Supplier. They look like this:

I need to make this query:

Wich are the name of the suppliers that supplied most (different) categories?" Note: can be more than one. Also every product as a principal supplier and at least one secondary supplier.
 
Supplier

ID | name
---+------
1  | John
2  | Andrew
3  | Mariah
4  | Drew

Secondary Supplier

ID | ProdID
---+-------
4  | 121
1  | 122
2  | 123
2  | 125
3  | 124

Product 

ProdID | Prim_ID | Category          Note: Prim_ID matches ID in table Supplier
-------+----------+----------
121    | 2        | Tampons
122    | 3        | Soda
123    | 3        | Makeup
124    | 4        | Chicken
125    | 1        | Tampons

After i run the query, it should give me something like this:

NOME  | COUNT
------+-------
Mariah| 3


The problem is that a product has a primary supplier and at least one secondary supplier. so when i do product natural join Secondary_Supplier my new table has 2 rows with Suppliers ID´s and i need to search in both rows.

I Tried this:

Select COUNT(DISTINCT category) as count, Prim_ID
From Product
Group by Prim_ID
Order by count DESC
Limit 1;

but i only get the primary supplier (Prim_ID). Also if i have one or more it only shows one of them (I think it's because of limit 1)

Thnaks for your help!