深度思考:
1.
如果让你来设计一个数据库,你会怎么设计这个表,包含用户关注的用户,被关注的用户所述的分组。
(表中 要用关注者 和 被关注者,这样才能实现!!!)
统计表中某一个字段的各种值的个数,然后排序 (sql语句是怎么写的,)
(排序可以用order by,但是order by后面跟的又是什么呢)
( 那还不是洒洒水了啊 ^ - ^) group by order by limit count
select belong_group,count(belong_group) as c from `user` group by belong_group order by desc limit 2
2.
找两个人的共同关注:
先找出A的所有关注,然后在里面找A的关注!
(也就是含有子查询!!)
( 下面这个感觉合适吗? 没法再从括号中得到的结果再进行查询了 )
select * from (select follow_who from `users` u where u.who_follow=\'A\') where
其实也相当于跨表查询!!!(只不过有一个表不是原来存在的,而是我们自己生成的)
SELECT follow_who from ( SELCET who_follow,follow_who FORM `users` u WHERE u.who_follow=\'A\' ) t ,users where users.follow=\'B\' and t.follow_who=users.follow_who
用join怎么做?
left join : 左边的是输入,加入到了右边
right join : 右边的是输入,加入到了左边
思考: 那么 left join 和 right join ,join左右的sql执行的顺序是不一样的是不?
左连接:
select follow_who left join (select follow_who from users) u on u.who_follow=\'A\' and u.follow_who=users.follow_who from users where who_follow=\'B\'
右连接:
( and u.follow_who=users.follow_who 这个就不能放在 right join的语句中了,对不对?)
select follow_who left join (select follow_who from users) u on u.who_follow=\'A\' from users where who_follow=\'B\' and users.follow_who=u.follow
3.
建索引