У меня есть две таблицы:
ProjectProduct (два идентификатора для проекта и продукта) и
ProductStatus (который содержит оценки качества для продуктов).
Таблица: ProjectProduct
| productID | projectID |
| --------- | --------- |
| 39 | 26 |
| 40 | 26 |
| 41 | 26 |
| 42 | 26 |
Таблица: ProductStatus
| id | projectID | productID | typeID | Status | Comment | RatedBy |
| --- | --------- | --------- | ------ | ------ | ------------ | ------- |
| 1 | 26 | 39 | 2 | 30 | comm1 | 0 |
| 2 | 26 | 39 | 2 | 70 | comm2 | 0 |
| 22 | 26 | 39 | 1 | 70 | diff type | 0 |
| 3 | 26 | 39 | 2 | 100 | comm3 | 0 |
| 4 | 26 | 39 | 2 | 70 | diff ratedBy | 1 |
| 5 | 26 | 39 | 2 | 100 | comm5 | 0 |
| 6 | 26 | 39 | 2 | 30 | comm6 | 0 |
Мне нужно объединить эти дватаблиц, так что каждый продукт в таблице ProjectProduct будет отображать значение статуса, даже если в таблице ProductStatus нет нет соответствующей записи .
только в приведенном выше примере productID 39существует в обеих таблицах.Чтобы отобразить все идентификаторы продукта, выходные данные должны содержать нулевое значение в столбце «Статус» для идентификаторов продукта с 40 по 42. Это та часть, которую я не могу понять.Например, TypeStatus TypeID может содержать 1 или 2. TypeID 2 должен различаться между RatedBy, который может содержать 0 или 1. Нужен ли оператор таблицы или выбора для отражения всех возможных перестановок?
Также только строкас наибольшим идентификатором, сгруппированным по идентификатору проекта, productID, typeID, RatedBy следует выбирать там, где есть существующий рейтинг.
Желаемый вывод : 
Я также создал SQL Fiddle
Я надеюсь, что вы можете направить меня в правильном направлении.
Спасибо.