2013-08-28 196 views
0

这里是我的简单查询:SQLite的查询结合使用两个结果集,

Select user_id, body 
from Messages where (Messages.author = 'john' and Messages.receipt = 'erick' 
UNION ALL (Messages.author = 'erick' and Messages.receipt = 'john'); 

我只是想给这两个简单的SELECT查询相结合,得到的东西,如:

user_id body 
------------------ 
1  hello 
2  hi john 
2  hello this is erick 
1  this is john! 

我在做什么错?

回答

2

你可以试试:

Select user_id, body 
from Messages where (author = 'john' and receipt = 'erick') or 
(author = 'erick' and receipt = 'john') 

顺便说一句,因为你只从一个表中选择数据,你不必每次你指的是现场时注明其名称。

0

您可以通过更改WHERE条件做到这一点:

Select body 
from Messages 
    where 
(messages.author = 'john' and messages.receipt = 'erick') 
or 
(messages.author = 'erick' and messages.receipt = 'john') 
0

您应该使用以前的答案。我认为他们表现更好。

我的回答是我只想澄清UNION关键字:UNION连接两个行集,应使用如下:

-- One rowset: 
SELECT user_id, body FROM Messages WHERE author = 'john' AND receipt = 'erick' 
UNION ALL 
- Another rowset: 
SELECT user_id, body FROM Messages WHERE author = 'erick' AND receipt = 'john' 
; -- Union of both is returned! 

不过,如果你正在寻找一个表中的行避免UNION:刚刚写了一个根据WHERE的条件。