首页 > 解决方案 > 如何比较选择独特项目的两个结果?

问题描述

所以我有一个查询,它给了我一个很好的项目列表。我想使用不同的参数再次运行查询以获取第二个项目列表。

然后我想比较这两个列表。我想查看第二个查询中但不在第一个查询中的项目。

我也想做同样的事情,但要找到常见的项目。

我本质上想运行一个 UNIX 通信命令,我一直在单独运行查询,然后这样做。但我想自动化这个过程。

我该怎么做呢?我意识到这是一个初学者的问题,但我什至不知道从哪里开始。

SELECT DISTINCT A0
from shakedata2
WHERE PLAY_ID=489 OR PLAY_ID=490
GROUP BY A0;

所以我想运行两个查询,输出一个查询中的项目,但不输出另一个查询中的项目,或者在其他情况下输出两个查询共有的项目。

标签: mysql

解决方案


要查找一组中不属于第二组的所有项目,您可以在 mysql 本身中使用外连接:

select  a.*
from    shakedata2 a
left join shakedata2 b
on a.play_id = b.play_id
and (a.x1 = 1 and a.x2 = 2)
and (b.y1 = 2 and b.y2 = 1)
where b.play_id is null

x1x2是您可能要查询的示例字段。

要查找符合这两个条件的记录,您可以使用内部联接或在上述查询中更改is null为。is not null


推荐阅读