数据库查询 - 我有两个表A和B.我必须从

时间:2016-05-16 05:54:32

标签: mysql database

我有两个表A和B.我必须从A表中获取数据,该表与B表不匹配(表示来自两个表的Uncommon Data)。但输出应仅来自表A.

表值A
             1,2,3,4,5,6

表值B
             1,2,7,8,9,0

输出应该是下面提到的数据

3  4  五  6

3 个答案:

答案 0 :(得分:1)

试试这个,可能适合你;)

select *
from tablea a
where not exists(select 1 from tableb b where a.value = b.value)

SQL Fiddle

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

SQL Fiddle

<强>结果

select a.value
from tablea a
left join tableb b on a.value = b.value where b.value is null;