獲取數據我有一個兩個表A和B.我只能從一個表中獲取數據,這個表與B表不匹配(意味着來自兩個表的不常見數據)。但輸出應該從表A是僅數據庫查詢 - 我有兩個表A和B.我只能從
表值一個
1,2,3,4,5,6-
表B值
1,2,7,8,9,0
出認沽應低於提到的數據
獲取數據我有一個兩個表A和B.我只能從一個表中獲取數據,這個表與B表不匹配(意味着來自兩個表的不常見數據)。但輸出應該從表A是僅數據庫查詢 - 我有兩個表A和B.我只能從
表值一個
1,2,3,4,5,6-
表B值
1,2,7,8,9,0
出認沽應低於提到的數據
嘗試此,可以爲您服務)
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)
| value |
|-------|
| 3 |
| 4 |
| 5 |
| 6 |
您可以使用NOT IN
SELECT *
FROM TableA
WHERE _value NOT IN
(SELECT _value FROM TableB)
您可以使用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;
結果
| value |
|-------|
| 3 |
| 4 |
| 5 |
| 6 |
'選擇tableA.value從TABLEA內部聯接tableB的上tableA.value!= tableB.value' –
它會顯示在B表中的數據也。我們只需要表A的值。 – Rimjhim
SQL 101:'從tableA中選擇a.value一個左連接tableB b在a.value = b.value其中b.value爲null;' – Strawberry