Chà, dễ hiểu nhất - nhưng không nhất thiết phải nhanh nhất - có lẽ là một cái gì đó như thế này. (Nhưng bạn có thể có ý khác khi "so sánh".)
-- Values in column1 that aren't in column2.
SELECT column1 FROM query1
WHERE column1 NOT IN (SELECT column2 FROM query2);
-- Values in column2 that aren't in column1.
SELECT column2 FROM query2
WHERE column2 NOT IN (SELECT column1 FROM query1);
-- Values common to both column1 and column2
SELECT q1.column1 FROM query1 q1
INNER JOIN query2 q2 ON (q1.column1 = q2.column2);
Bạn cũng có thể làm điều này trong một câu lệnh duy nhất để cung cấp cho bạn một so sánh trực quan. FULL OUTER JOIN
trả về tất cả các giá trị trong cả hai cột, với các giá trị phù hợp trong cùng một hàng và NULL
trong đó một cột bị thiếu một giá trị trong cột kia.
SELECT q1.column1, q2.column2 FROM query1 q1
FULL OUTER JOIN query2 q2 ON (q1.column1 = q2.column2);