环境:mysql-5.6.14-win32
win10专业版
问题描述:
问题分析:
distinct关键字必须写在所有查询字段的最前面。
SELECT DISTINCT(CabinetID),UserID FROM sys_user_cell HAVING COUNT(UserID)>1;
这样没有了语法错误,但并不是我们想要查看的内容。我们想要查看的是CabinetID唯一但UserID不唯一的数据情况。
解决办法:
创建临时表,再join临时表进行查询
drop table if EXISTS temp;
create TEMPORARY table temp
SELECT DISTINCT(CabinetID) FROM sys_user_cell HAVING COUNT(UserID)>1;
SELECT * FROM sys_user_cell join temp on temp.CabinetID=sys_user_cell.CabinetID