Как запустить два предложения where внутри Join? - PullRequest
0 голосов
/ 23 марта 2020

Пожалуйста, проверьте код ниже.

SELECT
  `order`.idorder
  , order_status_code.idorder_status_code
  , order_status_code.order_status_code
  , user.iduser
  , `order`.required_delivery_date
  , `order`.cancel
  , `order`.date_created
  , `order`.last_updated
  , COUNT(order_item.idorder_item) 
from
  `order` 
  INNER JOIN order_status_code 
    ON `order`.idorder_status_code = order_status_code.idorder_status_code 
  INNER JOIN user 
    ON `order`.iduser = user.iduser 
  INNER JOIN order_item 
    ON order_item.idorder = `order`.`idorder` 
WHERE
  `order`.iduser = 1

Здесь я хочу, чтобы COUNT(order_item.idorder_item) вернул количество элементов под idorder. Другими словами, если я запущу эту SQL Part вместе, это будет примерно так:

SELECT
  COUNT(`idorder_item`) 
from
  order_item 
where
  idorder = 1

Как мне это сделать в моем основном запросе?

1 Ответ

0 голосов
/ 23 марта 2020
SELECT `order`.idorder,
order_status_code.idorder_status_code,
order_status_code.order_status_code,
user.iduser,
`order`.required_delivery_date,
`order`.cancel,
`order`.date_created,
`order`.last_updated,
COUNT(order_item.idorder_item),
(SELECT COUNT(`idorder_item`) 
   from order_item 
   where idorder=1) as count_idorder_item
from `order`
INNER JOIN order_status_code ON `order`.idorder_status_code = order_status_code.idorder_status_code
INNER JOIN user ON `order`.iduser = user.iduser
INNER JOIN order_item ON order_item.idorder = `order`.`idorder`
WHERE `order`.iduser= 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...