结合使用和的两个结果集的SQLite查询
以下是我的简单查询:结合使用和的两个结果集的SQLite查询,sql,sqlite,Sql,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
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!
我做错了什么?你可以试试:
Select user_id, body
from Messages where (author = 'john' and receipt = 'erick') or
(author = 'erick' and receipt = 'john')
顺便说一句,由于您只从一个表中选择数据,因此不必每次引用字段时都指定其名称。您可以通过更改where条件来完成此操作:
Select body
from Messages
where
(messages.author = 'john' and messages.receipt = 'erick')
or
(messages.author = 'erick' and messages.receipt = 'john')
你应该使用前面的答案。我认为他们的表现更好 我的回答只是澄清一下
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
条件编写一个