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
TIES WITH TOP 1でのもう一つの方法とOVER COUNT:
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
が重複する場合は、1
を一意の行に、>1
を与えます。それをORDER BYに入れてTOP 1 WITH TIESを追加すると、最小カウントでId
しか残らなくなります。
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 LEFT OUTER JOINクエリのパフォーマンス
- 2. SQL Left Outer Join?
- 3. SQL Left Outer Join On Clause Placement
- 4. Oracle SQLクエリ(LEFT OUTER JOIN)
- 5. MySQL OUTER JOIN構文エラー
- 6. (MYSQL)SQL selectクエリ - おそらくOUTER JOIN?
- 7. oracle outer join query
- 8. Hibernate Left Outer Join
- 9. SQL Server Cross Join
- 10. Left Outer Join with IEnumerable
- 11. LEFT OUTER JOIN 2 datatables
- 12. Laravel query builder with left outer join
- 13. SQL Server 2005 LEFT JOIN?
- 14. SQL Server cursor left join
- 15. LEFT OUTER JOINとSUBSELECTのMySQL
- 16. nullカラムのSQL:FULL OUTER JOIN
- 17. SQL Server 2008 Join、Union、Multiple Selects?
- 18. C#:Inner Join 4 tables SQL Server
- 19. のSQL Server 2014は、JOIN
- 20. SQL Server INNER JOIN with hierarchyid
- 21. SQL Left Outer Joinと内部結合が等しくない
- 22. SQL OUTER JOINが空のレコードを返す - なぜですか?
- 23. Nullable列のSQL LEFT OUTER JOINと結合の使用
- 24. VBA ExcelでSQLのFULL OUTER JOINクエリを使用する方法
- 25. MariaDB:LEFT OUTER JOINが行を返さない
- 26. SQL:LEFT OUTER JOINとSUBQUERYの使用
- 27. MySQL Left Outer Joinと結果の結合
- 28. MySQLのクエリLEFT OUTER JOINは、AND IFNULL
- 29. OUTER JOINをNULLの代わりに0を返す方法
- 30. SQL Serverで条件付きのJOIN