sql的互相关注查询语句

研究了下! 查倒是查出来了!

但是好像和我的思路不对!先上语句吧!

SELECT A.* FROM dede_member_friends A INNER JOIN dede_member_friends B ON A.fid=B.mid AND B.fid=A.mid WHERE A.mid=80

1、查询表A条件为 mid=80  #查他的关注! 

2、筛选出互相关注的表内容 进行查询!

然后我们需要了解下面2个函数!

INNER JOIN

在表中存在至少一个匹配时,INNER JOIN 关键字返回行。

LEFT JOIN 

关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

然后我们来分开剖析了解下!


整体思路 就是查询  【表A的全部内容】 【来自内容】 【条件为A的粉丝】

我们把上面3个部分分开来理解就好理解了!   

第一步,表A的全部内容

就查询A.*所有表内全部的内容,就是后面需要展示的内容

SELECT A.*

第二步,来自哪里的内容呢!


from A表 INNER JOIN  B表 条件 A的关注=B的粉丝 AND B的关注=A的粉丝
  1. 就是用INNER  连接 A和B的表  

  2. on就是连接的条件

  3. 条件就是首先 A里面的fid == B里面的mid  

  4. 这时候我们就刷出来一部分了!可以理解为得到了一个新的表

  5. 然后我们AND一下,从新的表里面再查询

  6. B里面的FID=A里面的mid

  7. 这样我们就把剩下的刷选出来了!

这样我们就把全站互相关注的剔除出来了

第三步:条件

第二步已经把全站互相关注的都刷选出来了! 第三步再加上 条件是谁的关注就行了!

WHERE A.mid=80


好了!说完了!不知道你们理解没有! 

然后坑的是,

我需要查询A的粉丝,然后粉丝里面如果关注了就显示关注,没关注就显示没关注! 而不是这样只显示互相关注的! 

后续等我想想再更新方法吧! 思路有了!

就是查询 A的全部内容 和 B的 Y/N 条件 为 MID=80 ! 然后需要筛选下B里面的mid是否等于A里面的FID 返回yes或者NO 

就是不知道怎么写!

相关内容

发表评论

验证码:
点击我更换图片

最新评论