如何 select 一个 table 中的所有记录在另一个 table 中不存在,但在不存在的记录中 return NULL

How to select all records from one table that do not exist in another table but return NULL in the record that do not exist

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

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

谢谢。

我不确定是不是这样

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

也许可以尝试以下方法:

Select 
  * 
From
  TableB
LEFT JOIN
  TableB
  ON TableA.primary_key = TableB.foreign_key;