Я объясню сценарий использования следующим сценарием.
По сути, я хочу найти все pts / s из pts_table, который содержит все ордера pl001
pl_table
========
pl_id | order_id
pl001 order001
pts_table
=========
pts_id | order_id
pts001 order001
pts002 order001
pts002 order002
Вот запрос, который я пытаюсь,
SELECT pts_id
FROM pts_table
WHERE pts_table.order_id IN (SELECT DISTINCT(plt.order_id) FROM pl_table
as plt where plt.pl_id=pl001)// to check element equality.
GROUP BY pts_id
HAVING COUNT(DISTINCT pts_table.order_id) = (SELECT COUNT(plt2.order_id)
FROM pl_table as plt2 where plt.pl_id=pl001)//to check size equality.
Но, к сожалению, этот запрос возвращает как pts001, так и pts002, что неверно. В результате он должен возвращать только pts001 !.
как я выяснил, это связано с неправильной частью группировки.
Может кто-нибудь предложить мне, как исправить этот или любой другой лучший способ?
Любая помощь с благодарностью.