如何将一个表中的两对与 MySQL 上另一个表中的两对进行比较
Posted
技术标签:
【中文标题】如何将一个表中的两对与 MySQL 上另一个表中的两对进行比较【英文标题】:How to compare two pairs from one table to two pairs from another table on MySQL 【发布时间】:2020-08-04 19:19:12 【问题描述】:我想比较下表中的两个值。
阿拉普
+------+--------+
|ARLID | ARPID |
+------+--------+
| AA | AIA |
| OA | AIA |
| AA | ATL |
| AA | DFW |
| AA | LAX |
| DL | ORD |
| EK | ORD |
| AC | YYZ |
+------+--------+
航班
+------+---------+----------+
| ARLID| ARPID_1 | ARPID_2 |
+------+---------+----------+
| AA | ATL | DFW |
| AA | DFW | ATL |
| UA | ORD | DFW |
+------+---------+----------+
从 Arlarp,我们有现有的值对。在将航班的 ARLID 与 ARPID_1 和 ARPID_2 进行比较时,我想从 Flight 中找到缺失的 Arlarp 值对。
结果应该是这样的:
+------+---------+
| ARLID| ARPID |
+------+---------+
| UA | ORD |
+------+---------+
| UA | DFA |
+------+---------+
【问题讨论】:
从结果来看,我的意思是输入 DFW 而不是 DFA 【参考方案1】:一种选择是使用union all
取消透视flight
表,然后使用not exists
拉出alarp
中不存在的行:
select f.*
from (
select arlid, arpid_1 arpid from flight
union all select arlid, arpid_2 from flight
) f
where not exists (select 1 from alarp a where a.arlid = f.arlid and a.arpid = f.arpd)
【讨论】:
以上是关于如何将一个表中的两对与 MySQL 上另一个表中的两对进行比较的主要内容,如果未能解决你的问题,请参考以下文章