Сложности с исключающей выборкой в MySQL

Есть три таблицы:

product

product_id model price quantity
25 ghx 100 20
32 thx 130 0
65 r61 170 21
85 bh8 120 20
95 bh8 140 20

product_description

product_id name description
25 ваза что-то есть
32 тумба что-то есть
65 стол что-то есть
85 стол что-то есть
95 стол что-то есть

product_analogs

product_id analog_id
65 85
65 95
85 65
85 95
95 65
95 85

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=f11b509f68e482c98790e674df730b6f

Проблема с третьей таблицей, если без неё нужно выбрать товары, то пишу запрос:

SELECT * FROM product p 
LEFT JOIN product_description pd 
ON (p.product_id = pd.product_id) 
WHERE p.quantity > 0 
GROUP BY p.product_id ORDER BY p.price ASC

В итоге получаю выборку товаров с product_id: 25,85,95,65

Но есть задача прикрутить к запросу третью таблицу (аналоги), с таким условием, чтобы в выборке исключить аналоги товаров (65,85,95 - это аналоги друг друга), то есть в итоге должен получиться результат выборки такой: 25,85

То есть товары 95 и 65 исключаются, так как они указаны как аналоги для 85, а 85 взят потому что у него цена ниже чем у 65 и 95.

Просьба помочь кто знает как это сделать в запросе, каких-то вариантов у меня нет, не осиливаю.


Ответы (0 шт):