Mysql 查询以查找与多人有子女的所有人

Mysql 查询以查找与多人有子女的所有人,mysql,sql,subquery,Mysql,Sql,Subquery,我需要找到所有与不止一个人有过孩子的人的名单。我使用的是一个有人名、人名的表。这个人的ID也可以作为他们的母亲ID和父亲ID 在上面的例子中,我想找到保罗,他有四个孩子,两个不同的人,黛比和杰西。你可以使用COUNT(DISTINCT col)>1: SELECT * FROM table WHERE Id IN ( SELECT Father_Id FROM table GROUP BY Father_Id HAVING COUNT(DISTINCT Moth

我需要找到所有与不止一个人有过孩子的人的名单。我使用的是一个有人名、人名的表。这个人的ID也可以作为他们的母亲ID和父亲ID


在上面的例子中,我想找到保罗,他有四个孩子,两个不同的人,黛比和杰西。

你可以使用
COUNT(DISTINCT col)>1

SELECT *
FROM table
WHERE Id IN (
    SELECT Father_Id
    FROM table
    GROUP BY Father_Id
    HAVING COUNT(DISTINCT Mother_id) > 1
    UNION ALL
    SELECT Mother_Id
    FROM table
    GROUP BY Mother_Id
    HAVING COUNT(DISTINCT Father_Id) > 1
    );

试试这个:

select * from 
your_table a where
(select count(distinct father_id, mother_id)
from your_table b where b.father_id=a.id or b.mother_id=a.id)>1;
请参阅。

COUNT(不同的col1和col2)的良好用法。:)我将在中进行交换。
select * from 
your_table a where
(select count(distinct father_id, mother_id)
from your_table b where b.father_id=a.id or b.mother_id=a.id)>1;