У меня есть следующий запрос, который возвращает список идентификаторов групп, которые прикреплены к идентификаторам продуктов, указанным в предложении IN.
SELECT t1.product_id, t2.group_id
FROM table_1 t1
LEFT JOIN table_2 t2
ON t1.product_id = t2.product_id
WHERE t1.product_id IN(1,2,3,4,5)
AND t2.group_id = -1
OR t2.group_id = 2
Это возвращает что-то вроде этого:
+------------+----------+
| product_id | group_id |
+------------+----------+
| 1 | -1 |
| 1 | 2 |
| 2 | -1 |
| 3 | -1 |
| 4 | -1 |
| 5 | -1 |
+------------+----------+
У group_id всегда будет значение по умолчанию -1, но в некоторых случаях может быть более одного значения (например, product_id '1' имеет group_id '-1' и '2'). Что я хочу сделать, так это игнорировать значение «-1», когда есть альтернатива, поэтому я получаю следующее:
+------------+----------+
| product_id | group_id |
+------------+----------+
| 1 | 2 |
| 2 | -1 |
| 3 | -1 |
| 4 | -1 |
| 5 | -1 |
+------------+----------+
Я пытался использовать оператор GROUP BY для product_id, но я просто получаю значения -1 в столбце group_id.
Пожалуйста, кто-нибудь может дать мне несколько советов о том, как я могу это сделать!