У меня есть три таблицы и добавленные объединения для ссылки на предложение where и ограничения результатов.
Без предложения where SUM и GROUP BY работают хорошо для всех записей таблицы.Но если я пытаюсь ограничить результаты для tool.id, это не сработает.
заказов
ID | tool_id |
1 | 1 |
2 | 1 |
3 | 1 |
4 | 2 |
postitions_list
ID | order_id | optionindex |
1 | 1 | 1 |
2 | 1 | 2 |
3 | 1 | 1 |
4 | 2 | 4 |
инструменты
ID | Number |
1 | 10 |
2 | 20 |
3 | 30 |
запрос
SELECT
orders.id,
orders.tool_id,
positions_list.order_id,
positions_list.optionindex,
tools.id,
tools.tool_number,
SUM(positions_list.optionindex) AS optionindex
FROM positions_list
LEFT JOIN orders
ON orders.id=positions_list.order_id
LEFT JOIN tools
ON tools.id=orders.tool_id
WHERE
tools.id = :id
GROUP BY positions_list.optionindex
Что мне нужно, это
результаты запроса на основе заданного tool.id
ID | tool_id | optionindex | optionindex
1 | 1 | 1 | 2
2 | 1 | 2 | 1
3 | 1 | 3 | 0
4 | 1 | 4 | 0
Кроме того, следующим шагом будет получение optionindex.content
optionindex
ID | content |
1 | Value1 |
2 | Value2 |
3 | Value3 |
4 | Value4 |
Таким образом, конечный результат запроса:
Результаты запроса на основе данного tool.id
ID | tool_id | optionindex | optionindex | optionindex.content
1 | 1 | 1 | 2 | Value1
2 | 1 | 2 | 1 | Value2
3 | 1 | 3 | 0 | Value3
4 | 1 | 4 | 0 | Value4