我有两个表A和B.我必须从A表中获取数据,该表与B表不匹配(表示来自两个表的Uncommon Data)。但输出应仅来自表A.
表值A
1,2,3,4,5,6
表值B
1,2,7,8,9,0
输出应该是下面提到的数据
3 4 五 6
答案 0 :(得分:1)
试试这个,可能适合你;)
select *
from tablea a
where not exists(select 1 from tableb b where a.value = b.value)
MySQL 5.6架构:
CREATE TABLE IF NOT EXISTS `tablea` (
`value` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `tablea` (`value`) VALUES
(1),
(2),
(3),
(4),
(5),
(6);
CREATE TABLE IF NOT EXISTS `tableb` (
`value` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
INSERT INTO `tableb` (`value`) VALUES
(1),
(2),
(7),
(8),
(9),
(0);
查询1 :
select *
from tablea a
where not exists(select 1 from tableb b where a.value = b.value)
<强> Results 强>:
| value |
|-------|
| 3 |
| 4 |
| 5 |
| 6 |
答案 1 :(得分:0)
您可以使用SELECT *
FROM TableA
WHERE _value NOT IN
(SELECT _value FROM TableB)
{{1}}
答案 2 :(得分:0)
您可以使用JOIN获得所需的结果。
LEFT JOIN关键字返回左表(table1)中的所有行,右表(table2)中的匹配行。当没有匹配时,结果在右侧为NULL。
ChangeValue
<强>结果强>
select a.value
from tablea a
left join tableb b on a.value = b.value where b.value is null;