首頁 > 後端開發 > php教程 > mysql - 关于php查询数据库的问题

mysql - 关于php查询数据库的问题

WBOY
發布: 2016-06-06 20:29:24
原創
964 人瀏覽過

我正在做一个学校内部交流系统,现在遇到一个问题

比如:用户A的ID是5,用户B的ID是6,如何实现用户A关注的人同样也关注B,怎么统计出来人数呢?

已知的表:Follow_table(关注表)

<code>follow_id(自增ID)  |  user_id(关注者ID)  |  follow_user_id(被关注者ID)  |  follow_time(关注时间)  |
--------------------------------------------------------------------------------------------------
         1         |         5          |             1                |  2015-08-22 10:29:11 |
         </code>
登入後複製
登入後複製

以上是表的结构。

请问mysql查询语句怎么写呢?感谢大家!!

回复内容:

我正在做一个学校内部交流系统,现在遇到一个问题

比如:用户A的ID是5,用户B的ID是6,如何实现用户A关注的人同样也关注B,怎么统计出来人数呢?

已知的表:Follow_table(关注表)

<code>follow_id(自增ID)  |  user_id(关注者ID)  |  follow_user_id(被关注者ID)  |  follow_time(关注时间)  |
--------------------------------------------------------------------------------------------------
         1         |         5          |             1                |  2015-08-22 10:29:11 |
         </code>
登入後複製
登入後複製

以上是表的结构。

请问mysql查询语句怎么写呢?感谢大家!!

查A关注的人里有多少关注B的,是这意思吧

<code>select count (1) from Follow_table where follow_user_id=6 and user_id in
 (select follow_user_id from Follow_table where user_id=5)</code>
登入後複製

是说A、B同时关注的人,建议分别取A关注的人和B关注的人然后取数组交集这样会降低数据库负载,因为数据库CPU资源更宝贵。
一条sql的话试试这样:

<code>select a.follow_user_id from Follow_table a, Follow_table b where a.user_id=5 and b.user_id=6 and a.follow_user_id=b.follow_user_id;</code>
登入後複製

先查询到用户a关注的人,然后再判断这些人有没有关注b

确定不用redis???

假设a->b,a->[b,c,d,e],会不会有c->b或d->b呢,设定->左侧为left(关注人),右侧为right(被关注人),先找到a所关注的对象[right],再以右侧b找到所有左侧关注人[left],在从[left]中找[right],SQL语句就不写了。。。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板