Здравствуйте!
Есть таблица table со столбцами param_1, param_2, param_3
param_3 может быть NULL
Необходимо выбрать все строки, где совпадают значения param_1, причем выводить нужно все найденные строки, при условии что хотя бы в одной param_3 not null
Я попытался составить запрос, но не работает(когда хочу добавить условие на param_3)
SELECT * FROM table WHERE param_1 IN
(SELECT param_1 FROM table GROUP BY param_1 HAVING count(*)>1)
AND (SELECT param_3, FROM table GROUP BY param_3 HAVING count(*)>1)
Помогите пожалуйста
Вот визуально, что я хочу от запроса
table
+----+-----------+-----------+-----------+
| id | param_1 | param_2 | param_3 |
+----+-----------+-----------+-----------+
| 1 | арбуз | розовый | NULL |
| 2 | арбуз | красный | вкусный |
| 3 | арбуз | желтый | NULL |
| 4 | тыква | белая | NULL |
| 5 | тыква | черная | NULL |
| 6 | вишня | розовая | NULL |
| 7 | персик | желтый | NULL |
+----+-----------+-----------+-----------+
После применения запроса должно остаться только это:
+----+-----------+-----------+-----------+
| id | param_1 | param_2 | param_3 |
+----+-----------+-----------+-----------+
| 1 | арбуз | розовый | NULL |
| 2 | арбуз | красный | вкусный |
| 3 | арбуз | желтый | NULL |
+----+-----------+-----------+-----------+