2016-10-01 87 views
-1

near 'WHERE' : Syntax error一个SQLite错误代码如下发生:错误“近 'WHERE':在WHERE语法错误NOT EXIST SQLite的

INSERT INTO [Question_Period] ([Question_Period_ID],[Question_ID],[Period_ID],[Question_Period_Status]) 
SELECT 0,[Question_ID],0,1 FROM [Question] WHERE [Question_Property] = 1 
WHERE NOT EXISTS(SELECT 1 FROM [Question_Period] WHERE question_id in(SELECT 
[Question_ID] WHERE [Question_Property] = 1)); 

我用INSERT OR IGNORE但是毫无效果

+0

你有'where'两次......格式化你的问题,你会看到它。 '不存在'应该是'而不存在'...另外你的最后一个子查询中缺少'from'语句... – sgeddes

回答

2

不能使用更多!比单个Select一个Where子句,使用AND以分离条件

INSERT INTO [question_period] 
      ([question_period_id], 
      [question_id], 
      [period_id], 
      [question_period_status]) 
SELECT 0, 
     [question_id], 
     0, 
     1 
FROM [question] 
WHERE [question_property] = 1 
     AND NOT EXISTS(SELECT 1 -- Here use AND instead of Where 
         FROM [question_period] 
         WHERE question_id IN(SELECT [question_id] 
              FROM yourmissing_table --From clause missing 
              WHERE [question_property] = 1)); 

注:我觉得你的查询可以重新写在一个更好的方式,如果你共享样本数据和预期的结果

+0

最后一个地方是为了防止同一记录而不是第一个选择的一部分 –

+0

@MahdiAstanei - 但我们不知道表名 –

0

裹在括号中的第二行......这样的:

INSERT INTO [Question_Period] ([Question_Period_ID],[Question_ID], 
           [Period_ID],[Question_Period_Status]) 
    (SELECT 0,[Question_ID],0,1 FROM [Question] WHERE [Question_Property] = 1) 
WHERE NOT EXISTS(SELECT 1 FROM [Question_Period] WHERE question_id in(SELECT 
    [Question_ID] WHERE [Question_Property] = 1)); 
0

权SQL是:

INSERT INTO [Question_Period] ([Question_Period_ID],[Question_ID],[Period_ID],[Question_Period_Status]) 
SELECT 0,[Question_ID],0,1 FROM [Question] WHERE [Question_Property] = 1 
AND NOT EXISTS(SELECT 1 FROM [Question_Period] WHERE question_id in(SELECT 
[Question_ID] FROM [Question] WHERE [Question_Property] = 1)); 
相关问题