MySQL База данных: поиск максимума в каждой категории - PullRequest
0 голосов
/ 26 февраля 2020

Это для MySQL! Существует база данных со схемой:

A ( item_id , категория, имя) & B ( item_id , человек, длина, цена)

Вопрос в том, чтобы найти максимальную цену в каждой категории товаров длиной <= 4. Если предмет не в B, а в A, просто отобразите максимальную цену как «Ноль». Перечислите item_id, категорию, максимальную цену. </p>

Я пытался:

SELECT DISTINCT A.item_id, category, IFNULL(MAX(B.price), NULL)
FROM A, B
WHERE B.length >= 4
GROUP BY A.item_id

Я получаю правильные item_id с длиной> = 4, но для всех различных item_id я получаю максимальное значение для всех item_id (тогда как Я хочу найти индивидуальные максимальные цены для каждой категории). Как мне это исправить?

1 Ответ

0 голосов
/ 26 февраля 2020

Вам необходимо указать условие соединения двух таблиц.

SELECT DISTINCT A.item_id, category, IFNULL(MAX(B.price), NULL)
FROM B
left join A on A.item_id = B.item_id -- defining the specific left join to include null results
WHERE B.length >= 4
GROUP BY A.item_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...