|
Простой запрос - две таблицы
Jackman, Anton1307, Гипервизор, formista2000, d4rkmesa, boev82, Fedor-1971, ЖНЕЦ, Мультук, Dzenn, Галахад, Has, Stepashkin, Участковый, RomaH, Александр111, vbus, Затейник, novichok79, okmail, youalex, Смотрящий, Вадим33, Волшебник, RVN, Hmster, sikuda, Gun47, osa1C, ads55, nick86, Asmody, Shurjk, Михаил_, Gucci76, AlexKimp, Prog_man, Timon1405, orakool, maxab72, DemonShinji2
| ☑ |
0
ЖНЕЦ
21.11.24
✎
12:14
|
Всем привет
Есть две таблицы (количество строк может быть любым)
первая возвращает сервис по API
№ product_id exemplars_id quantity marka
1 1726678476 15248650268 1 ""
2 1726678476 15248650269 1 ""
3 1638630207 15248650270 1 ""
4 1638630207 15248650271 1 ""
и первую таблицу нужно заполнит маркой (есть вторая таблица уже из базы)
№ marka product_id
1 0108000001235708215Y%LssjF7Dt8- 1638630207
2 0108000001235708215y)hpG=hnSq+6 1638630207
Как сделать итог ?
№ product_id exemplars_id quantity marka
1 1726678476 15248650268 1 ""
2 1726678476 15248650269 1 ""
3 1638630207 15248650270 1 0108000001235708215Y%LssjF7Dt8-
4 1638630207 15248650271 1 0108000001235708215y)hpG=hnSq+6
|
|
1
okmail
21.11.24
✎
12:21
|
Во второй таблице поля exemplars_id нет?
|
|
2
ЖНЕЦ
21.11.24
✎
12:27
|
(1) в том то и дело , что нет
один товар (product_id)
может иметь сколько угодно марок (exemplars_id)
|
|
3
osa1C
21.11.24
✎
12:27
|
(0) Если это все поля в таблицах, то никак. Во второй таблице явно не хватает колонки
|
|
4
okmail
21.11.24
✎
12:29
|
(2) Тогда только программно. Обходить первую таблицу, искать по полю product_id во второй. Помечать(или удалять) марки, которые уже добавлены
|
|
5
Fedor-1971
21.11.24
✎
12:31
|
(0) Любая марка к любому exemplars_id? Нужно ли чтобы при повторном выполнении запроса марки присваивались тому-же exemplars_id?
|
|
6
ЖНЕЦ
21.11.24
✎
12:38
|
(4) так и делали, хочу узнать можно ли запросом
(5) Да , любая - так тоже правильно будет
3 1638630207 15248650270 1 0108000001235708215Y%LssjF7Dt8-
4 1638630207 15248650271 1 0108000001235708215y)hpG=hnSq+6
3 1638630207 15248650270 1 0108000001235708215y)hpG=hnSq+6
4 1638630207 15248650271 1 0108000001235708215Y%LssjF7Dt8-
|
|
7
Fedor-1971
21.11.24
✎
12:46
|
(6) я другое имел в виду, к нам следующий раз пришли
3 1638630207 15248650272
4 1638630207 15248650273
Марок только 2 и получим кашу, например, для 15248650270 и 15248650273 будет присвоена одна марка
Как видится, нужно добавлять в таблицу 2 exemplars_id, для предотвращения такого развития событий и выдавать в распределение только свободные марки
А так, в (4) правильно говорит, разбираем кодом и блокируем использованные марки
|
|
8
Hmster
21.11.24
✎
12:47
|
если запросом, то пронумеровать строки внутри product_id в первой и второй таблицах и соединить в том числи по этим полям
|
|
9
Fedor-1971
21.11.24
✎
12:47
|
(7)+ Как я понимаю, могут прислать и старые коды, с уже выданными марками
|
|
10
ЖНЕЦ
21.11.24
✎
12:52
|
(8) количество строк неизвестно изначально
(9) именно так
|
|
11
Fedor-1971
21.11.24
✎
13:15
|
(10) Если сделать как в (7), то левым соединением указываем присвоенные марки (т.е. не будем повторно присваивать уже готовые), а для оставшихся строк с Null кодом забираем свободные марки
|
|
12
d4rkmesa
21.11.24
✎
13:21
|
(8) Точно
(10) Даже если можно сделать распределение в запросе, если результат никак не фиксируется, то достоверность результата достаточно низкая. Все-таки, я бы лучше по-старинке с обработкой ТЗ сделал.
|
|