У меня есть две таблицы со следующими примерами данных:
Table 1: `item_name`
| item_id | item_desc |
| 1 | apple |
| 2 | orange |
| 3 | banana |
| 4 | grape |
| 5 | mango |
Table 2: `user_items`
| user_id | item_id |
| 127 | 1 |
| 127 | 2 |
| 127 | 4 |
| 128 | 1 |
| 128 | 5 |
Я пытаюсь выбрать общее количество каждого item_id, которое есть у обоих user_id 127 и 128, вместе с соответствующим item_desc, используя следующий запрос:
SELECT IFNULL(COUNT(ui.user_id), 0) AS total, in.item_desc
FROM user_items AS ui
RIGHT OUTER JOIN item_name AS in
ON ui.item_id = in.item_id
WHERE ui.user_id IN (127, 128)
GROUP BY ui.item_id
ORDER BY total DESC
Результатом вышеупомянутого запроса является:
| total | item_desc |
| 2 | apple |
| 1 | orange |
| 1 | grape |
| 1 | mango |
, но он не включает item_id 3, banana, который я хотел получить с помощью RIGHT OUTER JOIN. Я надеялся получить следующий результат:
| total | item_desc |
| 2 | apple |
| 1 | orange |
| 1 | grape |
| 1 | mango |
| 0 | banana |
Есть ли способ изменить запрос, чтобы получить желаемый результат, указанный выше? Спасибо за уделенное время.