MySQL自联合查询的一个例子

需求:查询当前Id所有邀请的人再邀请的人。相当于查询你朋友的所有朋友。用户表只有一个。

方法:
1、分析
A的邀请人ID是B的ID
B的邀请人ID是要查询的ID

2、写SQL语句
方法一:

  SELECT sh_user_a.*
  FROM sh_user sh_user_a
  LEFT OUTER JOIN
  `sh_user` sh_user_b ON `sh_user_a`.`invited_id` = 
  `sh_user_b`.`id`
  WHERE `sh_user_b`.`invited_id` = #{uid}

方法二:

SELECT * FROM `sh_user` WHERE `invited_id` in (SELECT id FROM sh_user WHERE invited_id=#{uid})

你可能感兴趣的:(MySQL自联合查询的一个例子)