Присоединяйтесь, где в правой таблице нет записей

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

Можно ли запрашивать продукты, которые имеют версию MAX, но еще не имеют валюты, где валюта version_id = id версии MAX?

РЕДАКТИРОВАТЬ

Запрошены данные для примера.

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

id      name
1       product a
2       product b
3       product c
4       product d

таблица версий

id      product_id     version_no
1       1              1
2       2              1
3       2              2
4       3              1
5       3              2
6       4              1

таблица валют

id      product_id     version_id   currency
1       1              1            USD
2       2              2            USD
3       2              3            USD
4       3              4            USD

Из этих данных я должен получить это:

product_id      product_name
3               product c
4               product d

Это связано с тем, что в версиях Max следующих продуктов

product_id      version
1               1
2               2
3               2
4               1

Только продукты 3 и 4 не имеют записей в таблице валют с этими version_nos.

Это достаточно ясно?

Не могли бы вы предоставить свой код, структуру таблицы и желаемый результат?

Leena Patel 10.09.2018 10:54

добавил пример

Kay Singian 10.09.2018 11:09

@KaySingian Вы уверены, что ожидаемый результат верен?

D-Shih 10.09.2018 11:22

@ D-Shih да, мой ожидаемый результат верен

Kay Singian 10.09.2018 11:24

используйте SQLFiddle для таких вопросов, чтобы предоставить структуру таблицы

Muhammad Omer Aslam 10.09.2018 11:41
2
5
48
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте левое соединение: и условие where с нулевым значением даст вам желаемый результат

select product_id,name
    from
    (select product_id, max(version_id) as vid
    from versiontable 
    group by product_id) v
    left join currencytable c on v.product_id=c.product_id and v.vid=c.version_id
    left join procuttable p on p.id=v.product_id
    where c.product_id is null and c.version_id is null

Другие вопросы по теме