Установка переменной в число на основе результата производной таблицы

0

У меня есть производная таблица, которая определяется как:

SELECT *
FROM customers INNER JOIN
(
SELECT customers.customer_id, SUM(clothingitem.price) AS Total FROM 'customerorderstoclothingitem'
INNER JOIN customerorders ON customerorderstoclothingitem.orderid = 
customerorders.orderid
INNER JOIN customers ON customers.customer_id = customerorders.customerid
INNER JOIN clothingitem ON clothingitem.clothingItemID = 
customerorderstoclothingitem.clothingitemid
GROUP BY customers.customer_id
) dTable ON dTable.Total > 300 AND customers.customer_id = dTable.customer_id

Я попытался использовать следующий запрос:

UPDATE customers SET customers.discount = 0.3
FROM customers INNER JOIN
(
SELECT customers.customer_id, SUM(clothingitem.price) AS Total FROM 'customerorderstoclothingitem'
INNER JOIN customerorders ON customerorderstoclothingitem.orderid = customerorders.orderid
INNER JOIN customers ON customers.customer_id = customerorders.customerid
INNER JOIN clothingitem ON clothingitem.clothingItemID = customerorderstoclothingitem.clothingitemid
GROUP BY customers.customer_id
) dTable ON dTable.Total > 300 AND customers.customer_id = dTable.customer_id

но я получаю сообщение об ошибке, что мой синтаксис неверен в строке 2, что означает, что по какой-то причине JOIN вызывает ошибку. Я считаю, что ошибка должна возникнуть из раздела обновления, как при использовании select, при этом не возникает ошибка, и она выполняется, как ожидалось.

Теги:
phpmyadmin

1 ответ

0

Вы можете напрямую присоединиться к таблице клиентов с производной таблицей, как показано ниже:

UPDATE customers INNER JOIN (
  // Your SELECT query for derived table
) dTable ON customers.customer_id = dTable.dTable.customer_id
 SET customers.discount = 0.3

Ещё вопросы

Сообщество Overcoder
Наверх
Меню