一总 发表于 2018-10-22 12:56:31

几种SQL语句的写法

  1.一张表中有用户信息表user(user_id,nickname),另外一张表联系人表contact(user_id,friend_id).现在要找出联系人的信息
SELECT U1.nickname as myselft,U2.nickname as friend FROM contact C inner join user U1 on C.user_id=U1.user_id inner join user U2 on C.friend_id=U2.id  以上如果friend_id可能为空的话,则后面那个inner join 改为left join.
  2.查找出好友及自己发的帖子,帖子表invitation(id,owner_id,title,content)
SELECT * FROM ( invitation I inner join user U on U.user_id=I.owner_id )  
inner join
  
(select friend_id from contacts where user_id=2 union all select 2) as B
  
on B.friend_id=I.user_id
  在mysql中就不要使用子查询了,mysql 5.5以前的版本对子查询效率极差。


页: [1]
查看完整版本: 几种SQL语句的写法