美文网首页
mysql三表查询与if函数

mysql三表查询与if函数

作者: 莫听风淋打叶声 | 来源:发表于2018-05-09 16:03 被阅读0次

           今天因为需求需要又改了接口,其中涉及到数据的三表关联和sql if语句,起先不太了解不过经过一段时间探索终于是搞懂了。于是写下一点心得。


    SELECT a.user_id,a.nickname,b.phone,b.sex,b.avatar_url,IF(c.id,1,0) FROM group_user a INNER JOIN app_user b ON a.user_id=b.user_id LEFT JOIN friend c ON c.`into_id`=a.user_id AND c.`from_id`=:user_id  WHERE group_id=:group_id";

    三张表用于查找群组下的用户字段,然后判断是否是当前用户的好友。

    LEFT JOIN:

    左表数据有几条则输出几条数据,和又表无关。

    SELECT a.user_id,a.nickname,b.phone,b.sex,b.avatar_url,IF(c.id,1,0) FROM group_user a

     INNER JOIN friend c ON c.`into_id`=a.user_id AND c.`from_id`=1

    LEFT JOIN app_user b ON a.user_id=b.user_id  WHERE group_id=123456

    左表有一条数据

    SELECT a.user_id,a.nickname,b.phone,b.sex,b.avatar_url,IF(c.id,1,0) FROM group_user a INNER JOIN app_user b ON a.user_id=b.user_id

    LEFT JOIN  friend c ON c.`into_id`=a.user_id AND c.`from_id`=1  WHERE group_id=123456

    左表有两条数据

    然后是if()函数,其实他判断的是一个表中的一个字段,如上c.id,其实判断的是关联查询的这张表中这个字段是否为空,在此将id字段显示出来

    SELECT a.user_id,a.nickname,b.phone,b.sex,b.avatar_url,c.id,IF(c.id,1,0) FROM group_user a INNER JOIN app_user b ON a.user_id=b.user_id

    LEFT JOIN  friend c ON c.`into_id`=a.user_id AND c.`from_id`=1  WHERE group_id=123456

    如图id字段不为空值则返回1空值返回0.

    总结完毕

    相关文章

      网友评论

          本文标题:mysql三表查询与if函数

          本文链接:https://www.haomeiwen.com/subject/gxtorftx.html