dongzen7263 2017-02-06 22:16
浏览 23

查询操作方法慢

I am having performance issues with this application. Basically i have three tables:

tblmembers: memberid,memberemail
tbltalks:talkid,talkdate,talknote
tblmemberstalks: id,memberid,talkid

Table members contains list of members
Table calls stores list of speaking/conference talks
Table memberstalks stores list of members who will speak at a particular conference.

Now from my front end (CMS), I want to manage who will speak in a conference (add/remove members). There are currently 1009 members. In current approach I am getting first list of members who are registered to speak at a conference so they can be removed and another query to get list of members who are not yet added as speakers so they can registered.

Essentially, I am going through the members table and checking tblmemberstalks for each member. Is there any better way to improve because the number of participants will increase gradually.

$registered="SELECT memberid,memberemail from tblmembers WHERE memberid IN (SELECT memberid FROM tblmemberstalks where talkid=1)";
$unregisterd="SELECT memberid,memberemail from tblmembers WHERE memberid NOT IN (SELECT memberid FROM tblmemberstalks where talkid=1)";
  • 写回答

1条回答 默认 最新

  • duanjuda5789 2017-02-06 22:24
    关注

    USE LEFT JOIN WITH CONDITION AND CHECK THE NULL ENTRY FOR UNREGISTRED

    SELECT 
    case when mt.memberid is not null then 'registered' else 'not-registered' end as registration_status,
    m.memberemail 
    
    from tblmembers m
    LEFT JOIN tblmemberstalks mt ON (mt.member_id=m.id AND mt.talkid=1)
    
    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?