开发者社区> 问答> 正文

MySQL的关于sql语句怎么写??三表的查询

现在我有三个表:
表1:

pre_common_member_profile:
uid(用户的uid),
gender(性别),
birthyear(出生的年),
birthmonth(出生的月),
birthday(出生的日)

表2:

pre_home_friend:
uid(用户的uid),
fuid(加为好友的uid)

表3:

pre_home_friend_request:
fuid(发送好友请求的人),
uid(发送给谁)

要求:
查找表1,但是排除一定条件。
查询表1上面的五个字段,条件为uid=570并且uid不能等于(这两个条件:1、表2中uid=570的fuid的值。2、表3中的fuid=570的uid值。)
请尽量写出的语句效率高一点。

展开
收起
小旋风柴进 2016-03-10 11:04:01 2891 0
1 条回答
写回答
取消 提交回答
  • 这个SQL不难写,给你分析下SQL的优化
    pre_home_friend 的 uid字段建立索引
    pre_home_friend_request 的 fuid建立索引

    pre_common_member_profile 的uid是主键的话,应该是有索引的。修改UID的索引的排序方式为 desc ,默认是ASC的,你可以看下

    使用NOT EXISTS 替换not in;

    然后看SQL的执行计划。看索引有没有生效

    2019-07-17 18:57:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载

相关镜像