2016-05-16 11 views
-1

獲取數據我有一個兩個表A和B.我只能從一個表中獲取數據,這個表與B表不匹配(意味着來自兩個表的不常見數據)。但輸出應該從表A是僅數據庫查詢 - 我有兩個表A和B.我只能從

表值一個
1,2,3,4,5,6-

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


出認沽應低於提到的數據

+0

'選擇tableA.value從TABLEA內部聯接tableB的上tableA.value!= tableB.value' –

+0

它會顯示在B表中的數據也。我們只需要表A的值。 – Rimjhim

+1

SQL 101:'從tableA中選擇a.value一個左連接tableB b在a.value = b.value其中b.value爲null;' – Strawberry

回答

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 | 
0

您可以使用NOT IN

SELECT * 
FROM TableA 
WHERE _value NOT IN 
(SELECT _value FROM TableB) 
0

您可以使用JOIN來獲得所需的結果。

LEFT JOIN關鍵字返回左表(table1)中的所有行,右表中有匹配的行(table2)。沒有匹配時,右側的結果爲NULL。

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

SQL Fiddle

結果

| value | 
|-------| 
|  3 | 
|  4 | 
|  5 | 
|  6 | 
相關問題