如何从一个表中选择在另一表中不存在但在不存在的记录中返回NULL的所有记录

时间:2018-07-11 08:24:35

标签: sql-server sql-server-2014

我有一个问题。我的数据库中有两个表tableA和tableB。 tableB包含来自tableA的数据,因为tableB是来自tableA的主键的外键,反之亦然。如何从tableB中选择不包含在tableA AS NULL记录中的所有记录?

tableA field : field1, field2, field3
tableB field : field1, field2, field3, field4, ...

谢谢。

2 个答案:

答案 0 :(得分:1)

我不确定是不是

CREATE TABLE #input_a (id INT)
CREATE TABLE #input_b (id INT)

INSERT INTO #input_a VALUES(1)
INSERT INTO #input_a VALUES(2)
INSERT INTO #input_a VALUES(3)
INSERT INTO #input_a VALUES(4)

INSERT INTO #input_b VALUES(1)
INSERT INTO #input_b VALUES(5)
INSERT INTO #input_b VALUES(3)
INSERT INTO #input_b VALUES(6)


SELECT b.id, a.id FROM #input_b as b LEFT JOIN #input_a as a ON b.id=a.id
DROP TABLE #input_a
DROP TABLE #input_b

检查一下: https://dbfiddle.uk/?rdbms=sqlserver_2012&fiddle=f447b6ff6f986d4bdfcda66a2be1b4c5

答案 1 :(得分:0)

也许尝试以下操作:

ALTER TABLE mytable CHANGE COLUMN `sum(xyz)` `xyz` <yourdatatype>;