Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个sql查询并集中一个查询的限制_Sql_Sqlite - Fatal编程技术网

两个sql查询并集中一个查询的限制

两个sql查询并集中一个查询的限制,sql,sqlite,Sql,Sqlite,我在尝试合并同一个表的两个sql查询的结果集时遇到问题。calls表中有一个call status列。我希望有一个结果集,其中我希望从同一个表中获得20个状态为Completed的呼叫,以及联系人的所有状态为Planning status的呼叫,称为calls。然后按整个结果集排序通话日期和开始时间。我正在尝试这样做: (SELECT * ' + 'FROM calls ' + 'WHERE primary_contact=' + id + ' ' +

我在尝试合并同一个表的两个sql查询的结果集时遇到问题。calls表中有一个call status列。我希望有一个结果集,其中我希望从同一个表中获得20个状态为Completed的呼叫,以及联系人的所有状态为Planning status的呼叫,称为calls。然后按整个结果集排序通话日期和开始时间。我正在尝试这样做:

(SELECT * ' +
           'FROM calls ' +
           'WHERE primary_contact=' + id + ' ' +
           'AND callstatus="Planned")' ;
           'UNION (SELECT * ' +
           'FROM calls ' +
           'WHERE primary_contact=' + id + ' ' +
           'AND callstatus="Completed"' +
           'LIMIT 0,20)' +
           'ORDER BY calldate || " " ||  stime DESC ';
这个问题对我不起作用。谁能帮我一下,告诉我哪里出了问题

提前谢谢

试试这个:

SELECT *
  FROM calls
 WHERE primary_contact = :id AND 
       callstatus = 'Planned'
UNION
SELECT *
  FROM (
           SELECT *
             FROM calls
            WHERE primary_contact = :id AND 
                  callstatus = 'Completed'
            LIMIT 20
       )
 ORDER BY calldate, stime;

到底是什么不起作用?您是否收到错误消息,或者是否收到错误结果?如果你得到了错误的结果,那么他们怎么会错呢?您得到了什么以及您期望得到什么?'SELECT*FROM SELECT*'+'FROM calls'+'其中primary_contact='+id++'+'和callstatus=planning UNION'+'从calls'+'中选择*'+'其中primary_contact='+id++''和callstatus=Completed'+'限制0,10“+”ORDER BY calldate | | | | | | | stime DESC”感谢您的帮助。但我必须像上面发布的那样进行内部查询。但现在我面临的问题是,限制设置为整个resultset,而不是仅适用于已完成的调用。我试图用括号将其括起来,但这会给出语法问题。你为什么要改变它?我的查询是否给出了错误的结果?您正面临限制的问题,因为限制适用于所有选择,即使是使用UNION连接的选择。看看我的查询-我只对第二个子查询应用限制-它不会影响外部选择。这就是将一个选择封闭为内部选择的全部要点,以使限制仅限于该内部选择。