У меня есть следующие данные в MySQL таблицы package_in_planВыбор конкретных строк несколько значений с одинаковым идентификатором
+------------+----------+------+
| package_id | plan_id | opt |
+------------+----------+------+
| 4 | 9 | 0 |
| 35 | 9 | 0 |
| 8 | 9 | 0 |
| 8 | 4 | 0 |
| 4 | 4 | 0 |
| 4 | 16 | 0 |
| 5 | 15 | 0 |
+------------+----------+------+
Я хочу, чтобы быть в состоянии выбрать package_id 4 и 8 и выход должен быть plan_id 4 ТОЛЬКО. Я не хочу, чтобы он выводил plan_id 9, потому что plan_id 9 имеет package_id 35, для которого plan_id 4 не так, я хочу, чтобы он был конкретным, что эти запрошенные package_id одинаковы для plan_id.
Это мой SQL, к которому я пришел до сих пор, и застрял оттуда.
Select * from package_in_plan where package_id in(4,8) group by plan_id having count(*) >1;
И, конечно, этот не работает. Цените помощь.
вы близки, это должно быть 'HAVING COUNT (DISTINCT package_id) = 2' так как вы ищете только 2 пакета –