如何在SQL中查找同一表中的双胞胎?

如何在SQL中查找同一表中的双胞胎?,sql,Sql,我有一张桌子,上面有: columnid, firstname, lastname, dob, motherid 现在我必须在这张桌子上找到一对双胞胎,他们的出生日期和母亲身份都一样。如何对此进行查询?您可以与和一起使用-最简单的解决方案是简单的查询非嵌套选择 SELECT firstname, lastname, COUNT(*) FROM mysql_table GROUP BY dob, mothe

我有一张桌子,上面有:

columnid, firstname, lastname, dob, motherid
现在我必须在这张桌子上找到一对双胞胎,他们的出生日期和母亲身份都一样。如何对此进行查询?

您可以与和一起使用-最简单的解决方案是简单的查询非嵌套选择

SELECT     firstname,
           lastname,
           COUNT(*)
FROM       mysql_table
GROUP BY   dob,
           motherid
HAVING     COUNT(*) > 1;

如果您想要多胞胎,您可以:

select t.*
from t
where exists (select 1
              from t t2
              where t2.motherid = t.motherid and
                    t2.dob >= t.dob - interval 1 day and
                    t2.dob <= t.dob + interval 1 day
             );

因为分娩不遵守日历惯例,多胞胎可能会在午夜发生。

这最多可以在每对双胞胎中找到一对双胞胎。