Я работаю с двумя таблицами.
Table1(Source): nextgenorders2
Table2(My Table): mytable_nextgenorders2
Таблица 1 - исходные данные. У меня нет контроля над этим, и я должен работать с тем, что у меня есть.
Таблица 2 - это моя таблица, в которой содержатся те же данные, что и в таблице 1, с некоторыми дополнительными столбцами.
У меня проблема если вчера в записях с названием компании "Deeway HS" было 3 записи в исходной таблице 1, а сегодня в исходной таблице 10 записей, я не хочу вручную инициировать запрос, чтобы сохранить эти записи. новые записи в таблице 2.
Мне нужно вставить эти новые записи в таблицу 2 с тем же значением для столбца tech и столбца состояния, что и для других соответствующих записей, которые имеют такое же название компании автоматически.
Является ли MYSQL триггером лучшим решением для сценария? Или запрос, который выполняется с интервалом?
Вот SQL Fiddle:
http://sqlfiddle.com/#! 9 / d75e30 / 11
И вот таблицы
Таблица 2 (моя таблица)
ID | Company | Entity | Order# | Date | Serial | Item | Tech | Status |
1 Deeway 20779 4608580 2020-11-11 SN1 Item1 JD Gathered
2 Deeway Pearl HS 20780 4608580 2020-11-11 SN2 Item2 JD Gathered
3 Deeway Stony HS 1273 4608558 2020-11-11 SN3 Item3 JD Gathered
4 Zaper LTD 9995 4630230 2020-11-11 SN4 Item4 MJ Assigned
5 Zaper CP LTD 4295 4607371 2020-11-11 SN5 Item5 MJ Assigned
6 Wilder 4224 6630210 2020-11-11 SN6 Item6 PJ Assigned
7 Wilder 4224 7601371 2020-11-11 SN7 Item7 PJ Assigned
Таблица 1 (источник)
ID | Company | Entity | Order# | Date | Serial | Item
1 Deeway 20779 4608580 2020-11-11 SN1 Item1
2 Deeway Pearl HS 20780 4608580 2020-11-11 SN2 Item2
3 Deeway Stony HS 1273 4608558 2020-11-11 SN3 Item3
4 Zaper LTD 9995 4630230 2020-11-11 SN4 Item4
5 Zaper CP LTD 4295 4607371 2020-11-11 SN5 Item5
6 Wilder 4224 6630210 2020-11-11 SN6 Item6
7 Wilder 4224 7601371 2020-11-11 SN7 Item7
8 Deeway 20779 4608580 2020-11-11 SN8 Item8
9 Deeway 20779 4608580 2020-11-11 SN9 Item9
10 Wilder 4224 7601371 2020-11-11 SN10 Item10
11 Zaper LTD 9995 4630230 2020-11-11 SN11 Item11
Вот моя попытка, она не добавляет новые записи , он только обновляет существующие записи или вставляет, когда в таблице 2 (моя таблица) нет записей названия компании.
$query_checkifexist = mysqli_query($mysqli, "
SELECT *
FROM mytable_nextgenorders2
WHERE Company LIKE CONCAT(SUBSTRING_INDEX('$mytable_nextgenorder_companyname', ' ', 1),'%')
");
$row_check = mysqli_num_rows($query_checkifexist);
if ($row_check > 0) {
$query_update = mysqli_query($mysqli, "
UPDATE mytable_nextgenorders2 SET
mytable_nextgenorder_companyname='$mytable_nextgenorder_companyname',
mytable_nextgenorder_company_entity='$mytable_nextgenorder_company_entity',
mytable_nextgenorder_ordernumber='$Entmytable_nextgenorder_ordernumberity',
mytable_nextgenorder_deliverydate='$mytable_nextgenorder_deliverydate',
mytable_nextgenorder_serialnumber='$mytable_nextgenorder_serialnumber',
mytable_nextgenorder_item='$mytable_nextgenorder_item',
mytable_nextgenorder_tech='$mytable_nextgenorder_tech',
mytable_nextgenorder_tech='$mytable_nextgenorder_status'
WHERE mytable_nextgenorder_companyname LIKE CONCAT(SUBSTRING_INDEX('$mytable_nextgenorder_companyname', ' ', 1),'%') ");
} else {
if (!$mysqli->query("INSERT INTO mytable_nextgenorders2 (
mytable_nextgenorder_companyname,
mytable_nextgenorder_company_entity,
mytable_nextgenorder_ordernumber,
mytable_nextgenorder_deliverydate,
mytable_nextgenorder_serialnumber,
mytable_nextgenorder_item,
mytable_nextgenorder_tech,
mytable_nextgenorder_status
)
SELECT
GROUP_CONCAT(DISTINCT nextgenorder_companyname) AS nextgenorder_companyname,
GROUP_CONCAT(DISTINCT nextgenorder_company_entity) AS nextgenorder_company_entity,
GROUP_CONCAT(DISTINCT nextgenorder_ordernumber) AS nextgenorder_ordernumber,
nextgenorder_deliverydate,
nextgenorder_serialnumber,
nextgenorder_item,
'$mytable_nextgenorder_tech',
'$mytable_nextgenorder_status'
FROM nextgenorders2
WHERE Company LIKE CONCAT(SUBSTRING_INDEX('$nextgenorder_companyname', ' ', 1),'%') ")) }