Обновление синтаксиса SQL - PullRequest
       2

Обновление синтаксиса SQL

0 голосов
/ 08 августа 2011

Веб-хостинг изменил мою версию Php Myadmin на выходных, и код обновления, который я использовал в течение года для обновления акций в Mysql, больше не работает.

Orig code

update uc_product_stock x set x.stock = (select y.stock from import y where trim(x.SKU) = trim(y.SKU))

Теперь возвращается следующая ошибка

#1242 - Subquery returns more than 1 row

Заранее спасибо за любую помощь в этом.

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

Ваш подзапрос возвращает несколько значений, и SQL не знает, какое из них вы хотите присвоить своей строке.

Вам необходимо получить подзапрос, возвращающий отдельные значения.

Возможны следующие варианты:

  • Сделайте подзапрос более конкретным (добавьте дополнительные WHERE фильтры, JOIN и т. Д.)
  • Используйте предложение TOP, чтобы вернуть только одну строку - SELECT TOP 1....
2 голосов
/ 08 августа 2011
UPDATE x 
    SET x.stock = y.stock 
    FROM uc_product_stock x
        INNER JOIN import y 
            ON TRIM(x.SKU) = TRIM(y.SKU))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...