Here's the SQL query to find the number of distinct countries that supply each product and order the results in descending order by the number of distinct countries:

```
SELECT 
    ProductID, 
    ProductName, 
    COUNT(DISTINCT Country) AS NumDistinctCountries 
FROM 
    products 
    JOIN supplier_locations ON products.SupplierID = supplier_locations.SupplierID 
GROUP BY 
    ProductID, 
    ProductName 
ORDER BY 
    NumDistinctCountries DESC;
```

Explanation:
1. Join both the tables using the `SupplierID` column.
2. Group the results by `ProductID` and `ProductName`.
3. Count the distinct number of countries for each product using the `COUNT` and `DISTINCT` functions.
4. Sort the results in descending order of the number of distinct countries using the `ORDER BY` clause.
### Instruction:
Given two tables, one for products with columns ProductID, ProductName, and SupplierID, and one for supplier locations with columns SupplierID, City, and Country, write a SQL query to find the number of distinct countries that supply each product, and return the results in descending order by the number of distinct countries.

### Response:
