Как выбрать новейшие записи из таблицы с отношением многие ко многим - PullRequest
1 голос
/ 07 мая 2019

У меня есть две таблицы. Таблица Products, в которой есть два типа продуктов ProductType_1 и ProductType_2, и вторая таблица ProductType_2_Items, в которой я храню информацию о том, что ProductType_1 содержится в ProductType_2.Мне нужно получить самую последнюю версию (ключ публикации) ProductType_1 для каждого ProductType_2.

Таблица продуктов:

|id | published_at        | type          |
|---|---------------------|---------------|
| 1 | 2019-04-24 08:23:35 | ProductType_1 |
| 2 | 2019-05-24 08:23:35 | ProductType_1 |
| 3 | 2019-06-24 08:23:35 | ProductType_1 |
| 4 | 2019-04-24 08:23:35 | ProductType_1 |
| 5 | 2019-05-24 08:23:35 | ProductType_1 |
| 6 | 2019-05-24 08:23:35 | ProductType_2 |
| 7 | 2019-05-24 08:23:35 | ProductType_2 |

Таблица ProductType_2_Items:

| ProductType_2_ID | ProductType_1_ID |
|------------------|------------------|
| 6                | 1                |
| 6                | 2                |
| 6                | 3                |
| 7                | 4                |
| 7                | 5                |

Ожидаемый результат:

|ProductType_1_ID | published_at        | ProductType_2_ID |
|-----------------|---------------------|------------------|
| 3               | 2019-06-24 08:23:35 | 6                |
| 5               | 2019-05-24 08:23:35 | 7                |

Спасибо за все ответы.

1 Ответ

0 голосов
/ 07 мая 2019

Вы можете попробовать ниже -

select A.id,p.published_at,a.ProductType_2_ID from
(
   select ProductType_2_ID,max(ProductType_1_ID) as id
   from ProductType_2_Items
   group by ProductType_2_ID
)A inner join Products p on p.id=A.id 
...