Могу ли я использовать представление SQL в левом внешнем соединении с обычной таблицей? - PullRequest
0 голосов
/ 12 октября 2018

Это мой взгляд

CREATE OR REPLACE VIEW w AS SELECT
orp1.order_product_id,
orp1.order_id,
pov1.weight,
sum(orp1.quantity) AS 'quantity'
FROM
`order_product` orp1,
`order_option` oro1,
`product_option_value` pov1
WHERE
pov1.option_id = 6 AND oro1.product_option_value_id = pov1.product_option_value_id AND orp1.order_product_id = oro1.order_product_id
GROUP BY
orp1.order_product_id,
orp1.order_id,
pov1.weight;

Это часть запроса

FROM 
    `order_product` orp6,
    `product` p,
    `product_description` pd,
    `product_to_category` p2c
LEFT OUTER JOIN w ON orp6.order_id = w.order_id AND orp6.order_product_id = w.order_product_id

Но отображаемая ошибка:

orp6.order_id неизвестный столбец

1 Ответ

0 голосов
/ 12 октября 2018

Никогда не используйте запятые в предложении FROM. Всегда используйте правильный, явный, стандартный JOIN синтаксис.В этом

CREATE OR REPLACE VIEW w AS
    SELECT orp1.order_product_id, orp1.order_id, pov1.weight,
            sum(orp1.quantity) AS 'quantity'
    FROM `order_product` orp1 JOIN
         `order_option` oro1
         ON orp1.order_product_id = oro1.order_product_id JOIN
         `product_option_value` pov1
         ON oro1.product_option_value_id = pov1.product_option_value_id
    WHERE pov1.option_id = 6 
    GROUP BY orp1.order_product_id, orp1.order_id, pov1.weight;

Вы можете добавить дополнительные JOIN s в предложение FROM, например, которое вы хотите добавить.

...