我有两个表,如下所示:
T1: ID | oldID
T2: ID | newID
我基本上需要在 ID 匹配时加入这些表。但是,我只想返回如下结果:ID |旧ID | newID 其中 oldID 不等于 newID。
示例数据:
T1:1 | 100
2 |无效的
3 | 200
4 | 500
T2:1 |无效的
2 | 300
3 | 200
4 | 400
我的预期结果:
T3:1 | 100 |无效的
2 |空 | 300
4 | 500 | 400
谁能指出我正确的方向?
最佳答案
试试这个答案,希望这有帮助
CREATE TABLE #T1 (ID INT, oldID INT)
INSERT INTO #T1 VALUES(1,100)
INSERT INTO #T1 VALUES(2,NULL)
INSERT INTO #T1 VALUES(3,200)
INSERT INTO #T1 VALUES(4,500)
CREATE TABLE #T2 (ID INT, [NewId] INT)
INSERT INTO #T2 VALUES(1,NULL)
INSERT INTO #T2 VALUES(2,300)
INSERT INTO #T2 VALUES(3,200)
INSERT INTO #T2 VALUES(4,400)
select T1.ID,T1.oldID,T2.[NewId]
FROM #T1 T1, #T2 T2
WHERE T1.id=T2.id and ISNULL(T1.oldID,0) != ISNULL(T2.[NewId],0)
DROP TABLE #T1
DROP TABLE #T2
关于mysql - 如何连接两个表但只返回与特定列不匹配的行,其中也包含 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47324213/