0
A
回答
0
您可以使用NOT EXISTS
从两个表中找出不匹配的ID,并可以将它与UNION ALL
结合使用。
查询
SELECT t1.[Id] FROM [table-1] t1
WHERE NOT EXISTS(
SELECT 1 FROM [table-2] t2
WHERE t1.[Id] = t2.[Id]
)
UNION ALL
SELECT t2.[Id] FROM [table-2] t2
WHERE NOT EXISTS(
SELECT 1 FROM [table-1] t1
WHERE t1.[Id] = t2.[Id]
);
0
的另一种方法与TOP 1 WITH TIES和COUNT OVER:
SELECT TOP 1 WITH TIES *
FROM (
SELECT *
FROM [table-1]
UNION ALL
SELECT *
FROM [table-2]
) u
ORDER BY COUNT(*) OVER (PARTITION BY Id ORDER BY Id)
输出:
Id name
D ...
E ...
F ...
G ...
H ...
I ...
J ...
K ...
COUNT(*) OVER (PARTITION BY Id ORDER BY Id)
如果有重复的Id
s,则将1
设置为唯一行,并且>1
。如果你把它放在ORDER BY中,并且添加TOP 1 WITH TIES - 那只剩下Id
s,并且计数最小。
与FULL OUTER另一种方法JOIN:
SELECT COALESCE(Id1,Id2) Id,
COALESCE(name1,name2) name
FROM (
SELECT t1.Id Id1,
t1.[name] name1,
t2.Id Id2,
t2.[name] name2
FROM [table-1] t1
FULL OUTER JOIN [table-2] t2
ON t1.Id = t2.Id
WHERE t1.Id IS NULL OR t2.ID IS NULL
) as t
相同输出(与另一顺序)
相关问题
- 1. SQL Server查询及OUTER JOIN
- 2. SQL Server LEFT OUTER JOIN查询性能
- 3. Xquery(SQL Server 2005/2008)except/outer join?
- 4. OUTER JOIN VS INNER JOIN
- 5. LEFT OUTER JOIN问题SQL
- 6. LEFT OUTER JOIN在SQL查询
- 7. SQL Server 2012中LEFT OUTER JOIN的SQL语法
- 8. 在SQL Server 2008的多个表中使用SQL的OUTER JOIN
- 9. NHhibernate OUTER JOIN
- 10. LEFT OUTER JOIN
- 11. LEFT OUTER JOIN
- 12. 多个OUTER JOIN
- 13. LEFT JOIN(OUTER JOIN)与INNER JOIN的条件
- 14. 使用LEFT OUTER JOIN
- 15. NHibernate的,LEFT OUTER JOIN
- 16. 了解LEFT OUTER JOIN
- 17. LEFT OUTER JOIN
- 18. 'LEFT JOIN'vs'LEFT OUTER JOIN'
- 19. JPQL OUTER JOIN
- 20. 的SQL Server:与多个LEFT OUTER JOIN查询和WHERE条件
- 21. SQL Server 2012 Express中的另一个LEFT OUTER JOIN失败
- 22. 为什么SQL Server CE 3.5上的LEFT OUTER JOIN性能不好?
- 23. SQL Server 2005 RIGHT OUTER JOIN不能正常工作
- 24. MySQL OUTER JOIN语法错误
- 25. SQL Server LEFT JOIN
- 26. Django的FULL OUTER JOIN
- 27. SQL Server:CROSS JOIN和FULL OUTER JOIN有什么区别?
- 28. SQL在RIGHT OUTER JOIN上返回num_rows
- 29. 重构SQL(解决方法RIGHT OUTER JOIN)
- 30. 将SQL(LEFT OUTER JOIN)转换为LinQ