powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / UPDATE...SET..SELECT
3 сообщений из 3, страница 1 из 1
UPDATE...SET..SELECT
    #39905554
Валерий666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите разобраться. Есть две таблицы, сотрудники и дети. Связаны по id-сотрудника. Нужно подсчитать количество дете до 18 лет и обновить запись в таблице сотрудников типа TinyInt(1).
Выборка получилась, а вот сделать одним запросом обновление нет.Подскажите как правильно это сделать?

Вот селект который выводит 2 поля, id-сотрудника и 1 или 0 соответсвенно при наличии у него 3-ех и более детей до 18 лет.

Код: sql
1.
2.
3.
4.
SELECT
 humans.id_h, 
IF( (SELECT sum(case when (child.full_years < 18) then 1 else 0 end) FROM child WHERE child.id_h= humans.id_h )>=3,1,0)
 FROM humans




Пытался сделать вот так, но это не работает:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
UPDATE 
  kadri.humans 
  SET 
  kadri.humans.multichild=
  (  SELECT
  IF(
  (SELECT
  sum(case when (child.full_years < 18) then 1 else 0 end) FROM child WHERE child.id_h= humans.id_h )>=3,1,0)
  FROM 
  humans)



Ошибка: You can't specify target table 'humans' for update in FROM clause
...
Рейтинг: 0 / 0
UPDATE...SET..SELECT
    #39905578
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
UPDATE humans, ( SELECT id_h, COUNT(*) cnt
                 FROM child
                 WHERE full_years < 18
                 GROUP BY id_h ) childs
SET humans.multichild = (childs.cnt > 2)
WHERE childs.id_h = humans.id_h
...
Рейтинг: 0 / 0
UPDATE...SET..SELECT
    #39905616
Валерий666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Благодарю!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / UPDATE...SET..SELECT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]