Mysql SUM с предложением GROUP BY и WHERE - PullRequest
1 голос
/ 04 апреля 2019

У меня есть три таблицы и добавленные объединения для ссылки на предложение 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...