Оператор обновления MYSQL - неизвестный столбец - PullRequest
1 голос
/ 06 октября 2011

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

enter image description here

Я хотел бы создать оператор обновления, чтобы установить значение столбца despgoods_alldetails.loadid =loaddetails.loadid где despgoods_alldetails_despgoodsid = loaddetails.despgoodsid.loadid.

Я размышлял в соответствии с

обновлением despgoods_alldetails set despgoods_alldetails.loadid = loaddetails.loadids loaddetails.loadid.despgoodsid

Этот запрос завершается ошибкой со следующей ошибкой: enter image description here

есть идеи, как заставить этот оператор обновления работать?

Спасибо, Райан

Ответы [ 4 ]

1 голос
/ 06 октября 2011

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

update despgoods_alldetails, loaddetails set despgoods_alldetails.loadid =     loaddetails.loadid where despgoods_alldetails.despgoodsid=loaddetails.despgoodsid

Можете ли вы найти один простой пример на этой странице http://dev.mysql.com/doc/refman/5.0/en/update.html

UPDATE items,month SET items.price=month.price WHERE items.id=month.id;
1 голос
/ 06 октября 2011

Почти все, просто ссылка на вторую таблицу.

UPDATE despgoods_alldetails, loaddetails
    SET despgoods_alldetails.loadid = loaddetails.loadid
    WHERE despgoods_alldetails.despgoodsid=loaddetails.despgoodsid
1 голос
/ 06 октября 2011

loaddetails - это отдельная таблица из той, которую вы пытаетесь обновить. Это не может быть сделано непосредственно в обновлении SQL. Вместо этого вам понадобится подобрать подобный вариант:

update despgoods_alldetails
set despgoods_alldetails.loadid = (
    select loaddetails.loadid
    from loaddetails
    where despgoods_alldetails.despgoodsid=loaddetails.despgoodsid
)
0 голосов
/ 06 октября 2011
update  
  despgoods_alldetails as da
join 
  loaddetails as l
using 
  (despgoodsid)
set 
  da.loadid = l.loadid;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...