X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Unknown column 'items.id' in 'where clause'
Den1xxx
Den1xxx
Topic Starter сообщение 28.9.2014, 11:45; Ответить: Den1xxx
Сообщение #1


Есть 2 таблицы — в одной объекты магазина (items), в другой — картинки к ним (itemimg);
Задача: установить название айтема (`items`.`name`) в качестве описания картинки (`itemimg`.`desc`) если ИД совпали.
Запрос:
UPDATE `itemimg` SET `itemimg`.`desc` = `items`.`name` WHERE `itemimg`.`itemid` = `items`.`id`

Вывод:
#1054 - Unknown column 'items.id' in 'where clause'

Что-то пошло не так, а что — не понятно.
id в items имеется.
Понимаю, что видимо через select делать надо, но как — не пойму.
Подскажите, пожалуйста.

//UPD 13:49
на другом форуме подсказали:
UPDATE `itemimg` AS img LEFT OUTER JOIN `items` AS i ON img.itemid = i.id SET img.desc = i.name

//UPD 15:25
Прочитал несколько мануалов по джйнам на русском.
По ним учить невозможно, как будто специально написано так, чтобы запутать.
Лучший мануал, что нашёл, на английском, но всё понятно:
http://blog.codinghorror.com/a-visual-expl...n-of-sql-joins/
Будет время, переведу и утащу к себе:)
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Arks
Arks
сообщение 1.10.2014, 1:15; Ответить: Arks
Сообщение #2


Джойн тут ни при чем абсолютно. Все очень просто. Ты сначала залочил таблицу itemimg для обновления. В результате мускуль снял снапшот с нее(при любой записи таким образом ставится блокировка на чтение пока этот активный снапшот не актуализируется по завершению транзакции записи). Потом ты захотел в снапшоте почитать поле которого в снапшоте в принципе нет(items.id)

В том что подсказали - снялся снапшот по джойну - и в нем это приджойненное поле конечно же оказалось.

Так что

UPDATE `itemimg`, `items` SET `itemimg`.`desc` = `items`.`name` WHERE `itemimg`.`itemid` = `items`.`id`
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Den1xxx
Den1xxx
Topic Starter сообщение 1.10.2014, 7:16; Ответить: Den1xxx
Сообщение #3


Вот оно что. Спасибо, буду знать.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 28.3.2024, 16:18
Дизайн