mysql - 改进 MySQL 查询以获取记录

标签 mysql sql

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

enter image description here

我有一个 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/

相关文章:

mysql - 如何在 MySQL 中按不同的值排序?

c# - 如何在我的程序中记录从 DbContext.SaveChanges() 生成的 SQL?

php - URL 图片上传/数据库设置

java - JPA 命名查询中的多对一关系

sql - 通过变量插入多行

php - 数据库不会用 mysqli 第二次更新

sql - 无法删除或修改或查看同表外键约束

SQL Server 找出何时重命名表?

mysql - 是否值得规范化?

php - 无法获取要显示的查询结果--php/mysqli