改进MySQL查询以获取记录

改进MySQL查询以获取记录,mysql,sql,Mysql,Sql,我有一个名为progress的表,它为客户和成员存储不同类型的进度 我有一个MYSQL查询,它假设从客户端到成员以及从成员到客户端都获取进度数据。目前我有一个查询,查询方式如下 SELECT * FROM progress WHERE (client = 'XXXX' AND member = 'YYYY') OR (client = 'YYYY' AND member = 'XXXX') 它得到了我想要的结果,但是如何改进这个查询的编写方式呢 请帮忙,任何帮助都将不胜感激 提

我有一个名为progress的表,它为客户和成员存储不同类型的进度

我有一个MYSQL查询,它假设从客户端到成员以及从成员到客户端都获取进度数据。目前我有一个查询,查询方式如下

SELECT * 
FROM progress
WHERE (client = 'XXXX' AND member = 'YYYY') 
    OR (client = 'YYYY' AND member = 'XXXX') 
它得到了我想要的结果,但是如何改进这个查询的编写方式呢

请帮忙,任何帮助都将不胜感激

提前感谢您

尝试使用工会

SELECT * FROM progress WHERE (client = 'XXXX' AND member = 'YYYY') 
UNION ALL
SELECT * FROM progress WHERE (client = 'YYYY' AND member = 'XXXX')

正如Barmar在评论
中所说,它不能变得更简单了
,但根据您编写此查询的问题,您有一些选择:

你可以使用工会

select * from progress where (client = 'xxxx' and member = 'yyyy') 
 union all
select * from progress where (client = 'yyyy' and member = 'xxxx')
您可以在语句中使用

select * from progress
 where (client) in ('XXXX','YYYY')
   and (member) in ('YYYY','XXXX');
您可以使用自己的解决方案

编辑


我忘了加小提琴了:

看起来不错。再简单不过了。我想他实际上是想交换这两个角色,但复制错误了。如果
XXXX
是一个数字,就不要使用
'XXXX'
。很抱歉弄错了。我修正了问题为什么?请说明理由。联合是正确的选择,因为我怀疑会有重复的。