I'm working with two tables.
Table1(Source): nextgenorders2
Table2(My Table): mytable_nextgenorders2
Table 1 is the source data. I have no control over this and I have to work with what I have.
Table 2 is my table which has the same data as Table 1 with some additional columns.
The problem I have is if yesterday the records for the company name "Deeway HS" has 3 records in the source table 1, but today it has 10 new records in the source table 1, I don't want to have to manually initiate a query to save those new records to the table 2.
I need to insert those new records into Table 2 with the same value for the tech column and the status column as the other matching records that have the same company name automatically.
Is a MYSQL trigger the best solution for the scenario? Or a query that runs on an interval?
Here's a SQL Fiddle:
http://sqlfiddle.com/#!9/d75e30/11
And here are tables
Table 2(my table)
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
Table 1(Source)
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
Here is my attempt, it does not add the new records, it only updates the existing records or inserts when there are no records of the company name in Table 2(my table).
$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),'%') ")) }