MySQL自聯合查詢的一個例子

weixin_33807284發表於2017-10-17

需求:查詢當前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})

相關文章