这是我的表结构:
create table table_a (emp_name varchar(100), dept_name varchar(100));
insert into table_a values ('amar', 'finance');
insert into table_a values ('akbar', 'human_resource');
insert into table_a values ('amar', 'finance');
insert into table_a values ('anthony', 'information_technology');
create table table_b (emp_name varchar(100), dept_name varchar(100));
insert into table_b values ('amar', 'finance');
insert into table_b values ('akbar', 'human_resource');
mysql> select * from table_a as a left join table_b as b on a.emp_name = b.emp_name and a.dept_name = b.dept_name where b.dept_name is null;
+----------+------------------------+----------+-----------+
| emp_name | dept_name | emp_name | dept_name |
+----------+------------------------+----------+-----------+
| anthony | information_technology | NULL | NULL |
+----------+------------------------+----------+-----------+
1 row in set (0.00 sec)
上面提到的左连接按预期工作。
但是,我还需要一条“amar”记录,因为表 A 中有 2 个条目,而表 B 中只有 1 个条目。所以,结果应该如下所示......
+----------+------------------------+----------+-----------+
| emp_name | dept_name | emp_name | dept_name |
+----------+------------------------+----------+-----------+
| anthony | information_technology | NULL | NULL |
| amar | finance | NULL | NULL |
+----------+------------------------+----------+-----------+
2 row in set (0.00 sec)
在计数准确性比数据完整性更重要的环境中,我需要这个。B表记录号(2)+查询结果(2)要与A表记录号(4)匹配
这可能看起来非常令人费解,这是您需要的查询
我加载了你的样本数据,我得到了这个:
这是没有 dupcount 值的情况
试试看 !!!