Использование FIND_IN_SET(ПОДСТРОКА с редактором таблиц данных

#php #datatables #jquery-datatables-editor

#php #таблицы данных #jquery-datatables-editor

Вопрос:

Я хочу обрезать результаты из 2 таблиц и сопоставить их. В настоящее время я использую это в скрипте PDO и работает нормально. Я пытаюсь преобразовать все мои таблицы в редактор таблиц данных, но сталкиваюсь с этой проблемой.

 ->leftJoin( 'FIND_IN_SET(SUBSTRING(disc_rq_activations.Related_SN,1, 13), SUBSTRING(disc_Activations.Device_ID, 1,13))' )
  

Вышеуказанное не выдает ошибок, но не загружает результаты.

вот мой обычный php-скрипт

 FROM disc_rq_activations RQ
LEFT JOIN
   disc_Activations VZ
   ON FIND_IN_SET(SUBSTRING(RQ.Related_SN,1, 13), SUBSTRING(VZ.Device_ID, 1,13))
   #ON IF(length(Related_SN) = 15,FIND_IN_SET(LEFT(Related_SN, length(Related_SN) - 1), VZ.Device_ID),Related_SN)
WHERE
   VZ.Device_ID IS NULL
   AND RQ.District = "'.$region.'"
   AND STR_TO_DATE(RQ.Sold_On, "%b %e, %Y %l:%i %p")  BETWEEN "'.$mindate.'" AND "'.$maxdate.'"
   AND RQ.Product_Name != "ISPU Activation"
   AND RQ.Product_Name != "ISPU New Act"
   GROUP BY RQ.Tracking_, RQ.Related_SN
  

Вышесказанное работает просто отлично.

Как я могу реализовать это в таблицах данных?

Полный скрипт таблиц данных

 
use PHPMailerPHPMailerPHPMailer;



require '../../../vendor/autoload.php';
include( "lib/DataTables.php" );

use
    DataTablesEditor,
    DataTablesEditorField,
    DataTablesEditorFormat,
    DataTablesEditorMjoin,
    DataTablesEditorOptions,
    DataTablesEditorUpload,
    DataTablesEditorValidate,
    DataTablesEditorValidateOptions;

    Editor::inst( $db, 'disc_rq_activations' )
        ->fields(
                Field::inst( 'disc_rq_activations.ID' ),
                Field::inst( 'disc_rq_activations.Invoice_' ),
                Field::inst( 'disc_rq_activations.Tracking_' ),
                Field::inst( 'disc_rq_activations.Qty' ),
                Field::inst( 'disc_rq_activations.Product_SKU' ),
                Field::inst( 'disc_rq_activations.Product_Name' ),
                Field::inst( 'disc_rq_activations.Unit_Rebate' ),
                Field::inst( 'disc_rq_activations.Related_Product' ),
                Field::inst( 'disc_rq_activations.Related_SKU' ),
                Field::inst( 'disc_rq_activations.Related_SN' ),
                Field::inst( 'disc_rq_activations.Related_Cost' ),
                Field::inst( 'disc_rq_activations.Related_Price' ),
                Field::inst( 'disc_rq_activations.Rate_Plan' ),
                Field::inst( 'disc_rq_activations.Customer' ),
                Field::inst( 'disc_rq_activations.Sales_Person' ),
                Field::inst( 'disc_rq_activations.Sales_Person_ID' ),
                Field::inst( 'disc_rq_activations.Sold_On' ),
                Field::inst( 'disc_rq_activations.Invoiced_At' ),
                Field::inst( 'disc_rq_activations.Original_Invoice' ),
                Field::inst( 'disc_rq_activations.Original_Sales_Date' ),
                Field::inst( 'disc_rq_activations.Contract_' ),
                Field::inst( 'disc_rq_activations.SOC_Code' ),
                Field::inst( 'disc_rq_activations.SOC_Code_2' ),
                Field::inst( 'disc_rq_activations.Extra_Field' ),
                Field::inst( 'disc_rq_activations.Port_Number' ),
                Field::inst( 'disc_rq_activations.Region' ),
                Field::inst( 'disc_rq_activations.District' ),
                Field::inst( 'disc_rq_activations.Vendor_Account_Name' ),
                Field::inst( 'daily_notes.note' ),
                Field::inst( 'daily_notes.note_id' ),



        )

// Need to convert this as it is showing all as null because one column is 18 digits and the other is 16 digits for the most part.  Some IDs are 13 digits. 
    ->leftJoin( 'disc_Activations', 'disc_rq_activations.Related_SN', '=', 'disc_Activations.Device_ID' )
    ->leftJoin( 'daily_notes', 'daily_notes.note_id', '=', 'disc_rq_activations.ID' )
    ->where('disc_Activations.Device_ID', null)


    ->debug( true )
        ->process( $_POST )
        ->json();