我有两张桌子。产品A和产品B。
产品

+----+-------+
| ID | SubId |
+----+-------+
| A1 |  112  |
| B1 |  111  |
| C1 |  115  |
| D1 |  117  |
| E1 |  114  |
| F1 |  112  |
+----+-------+

产品B
+----+-------+
| ID | SubId |
+----+-------+
| A1 |  112  |
| B1 |  111  |
| C1 |  115  |
| G1 |  001  |
| H1 |  002  |
| k1 |  003  |
+----+-------+

我想编写一个查询,它检索两列IDSubId并显示ProductA表中不在ProductB中的不同行。上表也是。
预期结果
+----+-------+
| ID | SubId |
+----+-------+
| D1 |  117  |
| E1 |  114  |
| F1 |  112  |
+----+-------+

我该怎么做?

最佳答案

查询

select distinct *
from productA
where not exists
(
  select null
  from productB
  where productA.id = productB.id
  and productA.subid=productB.subid
);

Fiddle demo here

关于mysql - 从两个表中获取唯一数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31203361/

10-10 06:15