表中的条目首次出现(访问)

时间:2013-02-28 12:23:31

标签: sql ms-access

这是我的表:

ID      NAME        FAMILY_ID       HASKIDS     ISPARENT
--------------------------------------------------------
1       John        1               1           1
2       Bill        1               1           0
3       Dick        1               1           0
4       Jane        2               1           1
5       Mary        2               1           0
6       Pete        3               0           1
7       Jess        3               0           1

我希望结果是

NAME        FAMILY_ID
---------------------
Bill        1
Mary        2

逻辑是:来自每个有孩子的家庭,显示他们的第一个出生的姓名(每个非父母成员的最高身份)和相应的家庭身份。

所以这是我的第一个查询 query1

SELECT DISTINCT family_id
FROM families
WHERE (haskids=1)
ORDER BY family_id;

这导致(正确):

1
2

我的第二个问题是 query2

SELECT TOP 1 name, family_id
FROM families
WHERE family_id IN (SELECT family_id FROM query1) AND isparent=0
ORDER BY id;

有不良后果:

NAME        FAMILY_ID
---------------------
Bill        1

因为top 1不会从每个子结果中带来前1个,而是整个较小的条目id。

我确定我错过了一些东西,并且有一种简单的方法可以实现这一点,但我无法弄清楚如何。

提前感谢您的帮助

1 个答案:

答案 0 :(得分:1)

select  *
from    YourTable
where   id in
        (
        select  min(id)
        from    YourTable
        where   isparent = 0
        group by
                family_id
        )