powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / UPDATE + INSERT
10 сообщений из 10, страница 1 из 1
UPDATE + INSERT
    #38327264
kristoferruotsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
приветствую всех

понимаю, тема избитая, но всеж
не работает у меня ни один из нижеперечисленных вариантов:

1.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
UPDATE db2.scu_goods
JOIN
(
SELECT
tiv.nomid AS nom,
tiv.item AS articul,
tiv.id AS barcode,
tiv.`version` AS ver_tiv
FROM
dbserver.goodsvar tiv
WHERE
tiv.item IN (1032156,1032157,1032158,1032226,1034427,1034427,1034427,1034427,1043055,1043098,1068941,1068956,1070459,1070560,1071684,1071684,1076159,1076453,1076476,1077932)
AND
tiv.nomid = 1
) tmptbl
ON
scu_goods.nom = tmptbl.nom
AND
scu_goods.articul = tmptbl.articul
SET
scu_goods.articul = tmptbl.articul,
scu_goods.barcode = tmptbl.barcode,
scu_goods.ver_tiv = tmptbl.ver_tiv



2.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
UPDATE db2.scu_goods,
(
SELECT
tiv.nomenclature_id AS nom,
tiv.item AS articul,
tiv.id AS barcode,
tiv.`version` AS ver_tiv
FROM
dbserver.goodsvar tiv
WHERE
tiv.item IN (1032156,1032157,1032158,1032226,1034427,1034427,1034427,1034427,1043055,1043098,1068941,1068956,1070459,1070560,1071684,1071684,1076159,1076453,1076476,1077932)
AND
tiv.nomid = 1
) AS tmptbl
SET
scu_goods.articul = tmptbl.articul,
scu_goods.barcode = tmptbl.barcode,
scu_goods.ver_tiv = tmptbl.ver_tiv
WHERE
scu_goods.nom = tmptbl.nom
AND
scu_goods.articul = tmptbl.articul



уже бьюсь головой об асфальт, тыкните носом
...
Рейтинг: 0 / 0
UPDATE + INSERT
    #38327362
Когда пытаешься выдумать свой синтаксис - оно всегда не работает. Хоть бы документацию для приличия открыл и посмотрел бы синтаксическую диаграмму для команды update
...
Рейтинг: 0 / 0
UPDATE + INSERT
    #38327386
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kristoferruotsi,

У вас точно MySQL, а не, например, Оракл?
Покажите точное сообщение об ошибке.
...
Рейтинг: 0 / 0
UPDATE + INSERT
    #38327427
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - ЭхКогда пытаешься выдумать свой синтаксис - оно всегда не работает. Хоть бы документацию для приличия открыл и посмотрел бы синтаксическую диаграмму для команды update

Добрый Э - Эх:

А вы сами давно туда заглядывали?

Все работает:

Код: sql
1.
2.
3.
4.
5.
6.
UPDATE users u,
(SELECT * 
   FROM users u2 
 WHERE u2.id = 1 ) uz2
SET u.name_suffix = 'A'
WHERE  u.id = uz2.id 
...
Рейтинг: 0 / 0
UPDATE + INSERT
    #38327436
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbcА вы сами давно туда заглядывали?Хм... каюсь, тоже был грешен в мыслях...
Тогда вопрос о СУБД снимается.
...
Рейтинг: 0 / 0
UPDATE + INSERT
    #38328263
kristoferruotsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
самое интересное что ошибки не выдает
только сообщение, что 0 строк обновлено
а это странно
сейчас попробую перелопатить запрос
...
Рейтинг: 0 / 0
UPDATE + INSERT
    #38328333
kristoferruotsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не помогли даже самые страшные заклятия
все равно: SQL4.sql: 0 Строки обновлена [1,313c]
...
Рейтинг: 0 / 0
UPDATE + INSERT
    #38328498
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kristoferruotsi,

сколько строчек выдает:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT * 
FROM db2.scu_goods,
(
SELECT
tiv.nomenclature_id AS nom,
tiv.item AS articul,
tiv.id AS barcode,
tiv.`version` AS ver_tiv
FROM
dbserver.goodsvar tiv
WHERE
tiv.item IN (1032156,1032157,1032158,1032226,1034427,1034427,1034427,1034427,1043055,1043098,1068941,1068956,1070459,1070560,1071684,1071684,1076159,1076453,1076476,1077932)
AND
tiv.nomid = 1
) AS tmptbl
WHERE
scu_goods.nom = tmptbl.nom
AND
scu_goods.articul = tmptbl.articul
...
Рейтинг: 0 / 0
UPDATE + INSERT
    #38329015
kristoferruotsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я понимаю о чем вы,
проверял, запрос выдает результат
...
Рейтинг: 0 / 0
UPDATE + INSERT
    #38329032
kristoferruotsi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
разобрался
суть была в следующем
я делал сравнение таблиц по полю с артикулом
а надо было по штрихкоду
так как одному артикулу, может принадлежать несколько (или много) разных штрихкодов
а вот штрихкоду, может соответсвовать только один артикул

как только сменил связь, все пошло

извините, я ошибся

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


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