比较两张表的某个字段在两张表分布的不同之处,该列的值在t1表中存在,在t2表中不存在或在t2表中存在,在t1表中不存在,sql有以下两种写法 第一种:将两个表做union操作,然后按字段分组,统计数量,为1的就是单独存在一个表中的
SELECT alias
FROM (
SELECT t1.name alias FROM table1 t1 GROUP BY name
UNION ALL
SELECT t2.name alias FROM table2 t2 GROUP BY name
) tab
GROUP BY alias
HAVING COUNT(*) = 1
ORDER BY alias
第二种:将两张表按照该字段进行左(右)关联查询,取右(左)那张表该字段为null的,即为单独存在在左表的
SELECT
*
FROM
table1 t1
LEFT JOIN table2 t2 ON t1.name = t2.name
WHERE
t2.name IS NULL