2017-05-26 36 views
0

孙子我有一个名为person(ID,fname,Age,Gender,parentID), 谁能告诉如何显示谁没有盛大的儿童在SQL个人表?显示表的人与SQL

回答

1

这应该做的伎俩,但如果你有很多的人有很多孩子可能会有点慢:

SELECT DISTINCT p.* 
FROM person p 
LEFT JOIN person c ON c.parentID = p.ID 
LEFT JOIN person gc on gc.parentID = c.ID 
WHERE gc.ID IS NULL 
0
SELECT * 
FROM person 
WHERE 
ID NOT IN (
      SELECT id 
      FROM (
       SELECT p.*,c.id as childID,g.id AS grandChildId 
       FROM person p 
       LEFT JOIN person c 
       ON c.parentID = p.ID 
       LEFT JOIN person g 
       ON g.parentID = c.ID 
       ) AS person_relation 
      WHERE grandChildId 
      is NOT NULL 

创建临时表可以是有益的,但对于单个查询这将工作。