开发者

Querying a database representation of a tree (MySQL)

I have two tables, one that contains nodes 开发者_StackOverflow社区and second that contains the relationships between them like so:

Table A (named Node)

NodeID | NodeName 
 100   |  Name 1
 101   |  Name 2
 102   |  Name 3

Table B (named Relationship)

NodeParent | NodeChild
  100      |    101
  101      |    102

I need to execute a query that needs to find which nodes are orphans (they are not in the Relationship table). How can I search through NodeParent and NodeChild at the same time?


SELECT 
  n.NodeID 
FROM 
  Node AS n 
LEFT JOIN 
  Relationship AS r
ON
  n.NodeID = r.NodeChild
WHERE
  r.NodeChild IS NULL


This will give you all nodes that have no children in Relationship table.

select n.*
from Node n
left join Relationship r on r.NodeChild = n.NodeID
where r.NodeChild is null;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜