MySQL: выбрать max из группы, используя значение из другой таблицы? - PullRequest
1 голос
/ 24 марта 2019

У меня есть две таблицы, и я пытаюсь найти максимальное значение столбца в первой таблице, сгруппированного по столбцу во второй таблице.

Вот пример того, что я имею в виду:

клиенты за столом:

customer_id | age
12367       | 23
87693       | 48
66933       | 44
82143       | 38
75454       | 19
38912       | 58
63554       | 80

покупки за столом:

product_id | customer_id
132        | 12367
132        | 66933
132        | 38912
844        | 12367
844        | 63554
598        | 75454
598        | 87693
598        | 66933

Я хочу найти customer_id самого старого покупателя каждого продукта, например:

product_id | customer_id | age
132        | 38912       | 58
844        | 63554       | 80
598        | 87693       | 48

Как мне создать запрос mysql, чтобы найти это?

1 Ответ

1 голос
/ 24 марта 2019

использовать коррелированный подзапрос

select product_id , a.customer_id , age
from purchases a inner join customers b on a.customer_id =b.customer_id
where age in (select max(age) from purchases a1 inner join customers b1 on a1.customer_id =b1.customer_id where a.product_id=a1.product_id group by a1.product_id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...