2014-07-24 63 views
1

如何在一个合并两个SQL查询?合并两个SQL查询

SELECT *FROM table1 WHERE chapter=88 AND sentence>=23 
SELECT *FROM table1 WHERE chapter=89 AND sentence>=1 AND sentence<=23 
+1

你想说明你期望的合并结果是什么吗? – scragar

回答

2
SELECT * 
FROM TABLE1 
WHERE (CHAPTER = 88 
     AND SENTENCE >= 23) 
     OR (CHAPTER = 89 
      AND SENTENCE >= 1 
      AND SENTENCE <= 23) 
+2

@ gidil:请停止将代码段编辑为大写。它没有帮助,使得代码的可读性往往比更好的更差,并且由OP来格式化代码,如果它没有错误,那么请保持原样。如果一个代码块被格式化,OP通常按照他喜欢的方式进行,这很好。 –

5

这是一种方式

SELECT *FROM table1 WHERE chapter=88 AND sentence>=23 
UNION ALL 
SELECT *FROM table1 WHERE chapter=89 AND sentence>=1 AND sentence<=23 

但你应该进入明确列出列的习惯。列必须对齐,否则将无法工作。

这里的另一种方式

SELECT * FROM table1 
WHERE (chapter=88 AND sentence>=23) OR (chapter=89 AND sentence>=1 AND sentence<=23) 
5

你可以加入查询是这样的:

SELECT * FROM table1 
WHERE 
(chapter = 88 AND sentence >= 23) 
OR 
(chapter = 89 AND sentence >= 1 AND sentence <= 23) 
1

试试这个:

SELECT * FROM table1 
WHERE (chapter=88 and sentence>=23) 
OR (chapter=89 and sentence>=1 and sentence<=23) 

这应该从两个查询返回的结果。

2

试试这个:

SELECT * 
FROM TABLE1 
WHERE (CHAPTER = 88 
     AND SENTENCE >= 23) 
     OR (CHAPTER = 89 
      AND SENTENCE BETWEEN 1 AND 23); 
1
SELECT * 
    FROM table1 
WHERE (chapter = 88 AND sentence >= 23) 
    OR (chapter = 89 AND sentence >= 1 AND sentence <= 23) 
2

您已经通过两种方式处理这样的表格和

create table table1 (id number, chapter number, sentence number); 

Insert into TABLE1 (ID,CHAPTER,SENTENCE) values (1,65,24); 
Insert into TABLE1 (ID,CHAPTER,SENTENCE) values (2,22,22); 
Insert into TABLE1 (ID,CHAPTER,SENTENCE) values (3,88,25); 
Insert into TABLE1 (ID,CHAPTER,SENTENCE) values (4,89,15); 
Insert into TABLE1 (ID,CHAPTER,SENTENCE) values (4,89,33); 

可以使用工会Munge时间两部分样本数据做套在一起

SELECT *FROM table1 WHERE chapter=88 AND sentence>=23 
UNION 
SELECT *FROM table1 WHERE chapter=89 AND sentence>=1 AND sentence<=23; 

或合并predi凯茨在where子句中实现同样的事情

SELECT *FROM table1 WHERE (chapter=88 AND sentence>=23) or 
          (chapter=89 AND sentence>=1 AND sentence<=23); 

都将给这个结果

|  ID| CHAPTER| SENTENCE| 
---------------------------------- 
|   3|  88|  25| 
|   4|  89|  15| 
0
Select * 
    From table1 
where ((chapter=88 AND sentence>=23) 
    OR (chapter=89 AND sentence>=1 AND sentence<=23)); 

此外,您还可以使用关键字BETWEEN第二子句。

-1
SELECT *FROM table1 WHERE chapter=88 AND sentence>=23 
UNION 
SELECT *FROM table1 WHERE chapter=89 AND sentence>=1 AND sentence<=23