-2

我正在尝试查找与父母相关联的子记录数。这基于同一张表中的 2 列(父级 master_ref 和子级 ref)。我发现的困难是仅在孩子的 date_entered 与父母相同时才计算孩子。任何帮助将非常感激。

4

2 回答 2

2

像下面这样的东西应该适合你:

select parent.master_ref, COUNT(*)
from nodes parent join
     nodes child
     on child.ref = parent.master_ref
where parent.date = child.date
group by parent.master_ref;

您需要进行连接以比较父级和子级之间的值。

于 2013-05-24T13:33:17.577 回答
1

假设您有 3 个表,例如:

CREATE TABLE Parents (ID INT, date_entered DATE);
CREATE TABLE Children (ID INT, date_entered DATE);
CREATE TABLE Relation (master_ref INT, ref INT);

以下 select 语句应该给你你想要的:

SELECT p.ID, COUNT(*)
FROM Parents p
JOIN Relation r
ON p.ID = r.master_ref
JOIN Children c
ON c.ID = r.ref
WHERE c.date_entered = p.date_entered
GROUP BY p.ID

SQLFiddle 与该代码(无数据):http ://sqlfiddle.com/#!4/6e7d3/2/0

于 2013-05-24T14:03:33.600 回答