我有一个名为“进度”的表,它存储客户和成员的不同类型的进度;
我有一个 MYSQL 查询,它应该获取从客户端到成员(member)以及从成员(member)到客户端的进度数据。目前我有一个疑问,通过以下方式;
SELECT *
FROM progress
WHERE (client = 'XXXX' AND member = 'YYYY')
OR (client = 'YYYY' AND member = 'XXXX')
它得到了我想要的结果,但是我如何才能在编写方式方面改进这个查询。
请帮忙,非常感谢任何帮助。
提前谢谢
最佳答案
正如 Barmar 在评论中所说的它再简单不过了
,但是根据您编写此查询的问题,您有一些选择:
您可以使用 UNION
select * from progress where (client = 'xxxx' and member = 'yyyy')
union all
select * from progress where (client = 'yyyy' and member = 'xxxx')
您可以使用IN
语句
select * from progress
where (client) in ('XXXX','YYYY')
and (member) in ('YYYY','XXXX');
您可以使用自己的解决方案。
编辑
忘记添加我所做的 fiddle :http://sqlfiddle.com/#!2/74e6ec/7
关于mysql - 改进 MySQL 查询以获取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24616003/