SQL将缺少的ID从一个表输入另一个表

时间:2018-06-04 19:37:25

标签: sql

所以我试图从一个表中获取一些值(tblIDs)并输入另一个表(tbldailylog)并在每天通过其他方式登录系统时填写一些默认值。

每天,tblID上的一些ID都会被记录到tbldailylog中,但有些ID会被取消。理想情况下,查询将比较给定日期的两个表中的ID,并将那些不在tbldailylog上但在tblID上的ID添加到tbldailylog(如果它们被自动记录,则可能设置一些默认选项)。

INSERT INTO `tbldailylog` (`logID`,`LogDate`,`Issue`,`Notes`) 
SELECT `ID`,`LogDate`,'0','AUTO-LOGGED' 
FROM `tblIDs`,`tbldailylog` 
WHERE DATE(`Date`) = CURDATE() 
AND NOT EXISTS (SELECT `logID`,`ID` FROM `tbldailylog`,`tblIDs` 
WHERE `logID` = `ID`)

这个查询只是没有做任何事情(没有错误信息),而且我尝试过的大多数事情都无处可去。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您需要 table alise:

from zeep import Client, xsd
client = Client(
    wsdl_url,
    transport=transport,
)

header = xsd.ComplexType(
    xsd.Sequence([
        xsd.Element('SomeString', xsd.String()),
        xsd.Element('SomeBoolean', xsd.Boolean()),
    ])
)

headers = [ header(SomeString='Hello', SomeBoolean=True) ]
client.set_default_soapheaders(headers)

client.service.MakeTheMagic(Stuff=stuff)

答案 1 :(得分:0)

嗯。嗯。 。 。我在考虑NOT EXISTS而没有加入:

INSERT INTO tbldailylog (logID, LogDate, Issue, Notes) 
    SELECT i.ID, i.LogDate, '0', 'AUTO-LOGGED' 
    FROM tblIDs i
    WHERE NOT EXISTS (SELECT 1
                      FROM tbldailylog dl
                      WHERE DATE(dl.Date) = CURDATE() AND dl.logID = i.id
                     );