从两个表中插入条件

时间:2018-01-04 11:05:37

标签: mysql mariadb

我有3张桌子

表1 EIN栏:

id, name, plate,in_datetime,time,image-name.

表2 EOUT列:

id, name, plate, out_datetime, time, image-name.

表3重新调整列:

id, plate,in_datetime,in_entry_id,out_datetime, out_entry_id,Processed, duration.

我需要使用where条件将表1和表2的值放入表3列中。 我使用以下查询:

INSERT INTO recon (id,EIN.plate,EIN.in_datetime, EIN.id,  EOUT.out_datetime, EOUT.id,null, null) 
    SELECT EIN.RegistrationMark,EIN.datetime,EIN.id, EOUT.date,EOUT.id FROM EIN_anpr_vega as EIN, EOUT_anpr_vega as  EOUT
    where EIN.plate = EOUT.plate
    and EIN.in_datetime = EOUT.out_datetime

我在null附近收到错误,null。以下是错误。

for the right syntax to use near 'null, null

2 个答案:

答案 0 :(得分:1)

在你的列名中你不能写null

INSERT INTO recon (id,EIN.plate,EIN.in_datetime, EIN.id,  EOUT.out_datetime, EOUT.id,null, null) 

而是编写列名并将空值放在select中。像这样:

INSERT INTO recon (id,EIN.plate,EIN.in_datetime, EIN.id,  EOUT.out_datetime, EOUT.id,col1, col2) 
    SELECT EIN.RegistrationMark,EIN.datetime,EIN.id, EOUT.date,EOUT.id, null, null FROM EarlsdonMSIN_anpr_vega as EIN, EarlsdonMSOUT_anpr_vega as  EOUT
    where EIN.plate = EOUT.plate
    and EIN.in_datetime = EOUT.out_datetime

答案 1 :(得分:0)

INSERT INTO recon (id, EIN.plate ...) VALUES ...

第一个()中的内容应该是表recon列名。 (我很惊讶它没有显示EIN.plate的语法错误。)

是的,稍后,null会因为同样的原因而遇到麻烦 - 它不是列名。