如何删除mysql中不重复的行?
我试图为所有有多个受抚养人的员工显示ssn、名字(fname)、姓氏(lname)、受抚养人姓名、受抚养人性别和受抚养关系。 我可以得到所有依赖项的列表。什么是显示包含多个依赖项的条目的查询 显示创建员工表如何删除mysql中不重复的行?,mysql,Mysql,我试图为所有有多个受抚养人的员工显示ssn、名字(fname)、姓氏(lname)、受抚养人姓名、受抚养人性别和受抚养关系。 我可以得到所有依赖项的列表。什么是显示包含多个依赖项的条目的查询 显示创建员工表 Employee | CREATE TABLE `employee` ( `fname` varchar(15) NOT NULL, `minit` varchar(1) DEFAULT NULL, `lname` varchar(15) NOT NULL, `ssn` char(9) NO
Employee | CREATE TABLE `employee` (
`fname` varchar(15) NOT NULL,
`minit` varchar(1) DEFAULT NULL,
`lname` varchar(15) NOT NULL,
`ssn` char(9) NOT NULL DEFAULT '',
`bdate` date DEFAULT NULL,
`address` varchar(50) DEFAULT NULL,
`sex` char(1) DEFAULT NULL,
`salary` decimal(10,2) DEFAULT NULL,
`superssn` char(9) DEFAULT NULL,
`dno` int(11) DEFAULT NULL,
PRIMARY KEY (`ssn`),
KEY `fk_employee_department` (`dno`),
KEY `fk_employee_employee` (`superssn`),
CONSTRAINT `fk_employee_department`
FOREIGN KEY (`dno`) REFERENCES `department` (`dnumber`),
CONSTRAINT `fk_employee_employee`
FOREIGN KEY (`superssn`) REFERENCES `employee` (`ssn`)
ENGINE=InnoDB DEFAULT CHARSET=latin1 |
显示创建表依赖项
DEPENDENT | CREATE TABLE `dependent` (
`essn` char(9) NOT NULL DEFAULT '',
`dependent_name` varchar(15) NOT NULL DEFAULT '',
`sex` char(1) DEFAULT NULL,
`bdate` date DEFAULT NULL,
`relationship` varchar(8) DEFAULT NULL,
PRIMARY KEY (`essn`,`dependent_name`),
CONSTRAINT `fk_dependent_employee`
FOREIGN KEY (`essn`) REFERENCES `employee` (`ssn`)
ENGINE=InnoDB DEFAULT CHARSET=latin1 |
当前正在使用查询:
select e. ssn,e.fname,e.lname,d.dependent_name,d.sex,d.relationship
from dependent AS d ,Employee as e
WHERE e.ssn=d.essn
使用子查询计算每个子查询的依赖项数并将其加入。这将获得所需的筛选器:
select e.ssn, e.fname, e.lname, d.dependent_name, d.sex, d.relationship
from Employee e join
dependent d
on e.ssn = d.essn join
(select d.essn, count(*) as cnt
from dependent d
group by d.essn
having cnt >= 2
) d2
on e.ssn = d2.essn
order by e.ssn;
如果不了解您的表结构,我们将无法提供非常有效的帮助。我假设这里至少涉及两个表,或者一个表中包含父子关系。请发布关于您的表格的更多信息。@MichaelBerkowski:我使用两个表格(员工和家属)。我试图使用ssn获取超过家属的员工…但是我获取所有有家属的员工。您的标题是“删除…”似乎与您的问题内容不匹配..抱歉,如果我误解了..还需要更多信息来了解员工表和从属表之间的关系。请发布
SHOW CREATE TABLE Employee的结果;显示创建表依赖项代码>这是我正在使用的查询:::选择e。ssn,e.fname,e.lname,d.dependent_name,d.sex,d.relationship from dependent AS d,Employee AS e,其中e.ssn=d.essn;谢谢您的帮助,但我在字段列表中得到一个未知列d.essn错误