У меня есть такая структура таблицы:
point
===============================================
column | type | comment
===============================================
id | int | primary key (auto increment)
type | enum | 'paradise', 'culinary'
post_id | int | foreign key to culinary.id
user_id | int |
===============================================
culinary
===============================================
column | type | comment
===============================================
id | int | primary key (auto inc)
title | varchar(255) |
user_id | int |
===============================================
Я хочу обновить поле point.user_id
, используя значения из culinary.user_id
. но я получил сообщение об ошибке column 'user_id' cannot be null
, хотя, когда я выбираю каждую таблицу, нет записей с нулевым user_id ...
вот что я пробовал:
-- first attempt gets error message > 1048 - Column 'user_id' cannot be null
update `point`
set `user_id` = (
select `culinary`.`user_id`
from `culinary`
where `culinary`.`id` = `point`.`post_id`
and `point`.`type` = 'culinary'
)
-- second attempt but still the same error message
update `point`
set `user_id` = (
select `culinary`.`user_id`
from `culinary`
where `culinary`.`id` = `point`.`post_id`
)
where `type` = 'culinary'