java吧 关注:1,243,311贴子:12,716,585
  • 14回复贴,共1

求高性能的sql语句,学生表,成绩表,查询既参加A又参加B考试语句

只看楼主收藏回复

学生表 student (id,name)
成绩表 score (id,student_id,subject,grade);
求查询既参加A又参加B考试的学生。
我有一种土办法,但是不知道高不高效,
select * from student where id in (select * from score where subject = "A") and id
in (select * from score where subject = "B");


1楼2016-02-13 23:03回复
    看你有没有索引,推荐使用join,join不会查询全表,in会查询所有表


    来自iPhone客户端3楼2016-02-13 23:12
    收起回复
      select * from student where id in (select s1.student_id from score s1,score s2 where
      s1.student_id=s2.student_id and s1.subject='A' and s2.subject) 应该是性能不错的了


      来自Android客户端5楼2016-02-13 23:33
      收起回复

        ḻ͔̦͎̯͍̦͕̊̅ͦ͛͂̍͐̑̔͛̚̕͘k̨͎̳͈̫̫̤̙̪̞̦̳͙̭͓̜̙̞̄̽̊͐̍̓̋͊̎͘ͅa̩̮̘̗͈͙̠̲̠̹̹͚̣̜͖̳̞͇͂͊͒̈́̽̏ͮ̑́̉̾ͣ̽͆̀͘͟͢j̧̛͕̻̻̯̤̹̮̤ͬ̿ͮ͌̔ͧͤ͌ͤͭ͆ͤ̍͜͡fͭͨ̓͋̊҉̸̡̡̮̪͉̣͉̣͇͖̪͖̲͚l͌̎̑ͣͣ̏̀̈́̄͏̶̷̧͇̻̱̰́k̛̯̝͔̰̬̱͔̲̠̤̠̝͚͎͉ͭ͑ͫ̆̉̓;̷̸̨̀͒̏̃ͦ̈́̾̀́̎͢҉͚̼͉s̵͖̺̥͔͇̰̹̮͙͉̻̼̭̻͕̮͇ͨͬͪ͗̇̑̽͋̀j̶̋̊͌ͧͨͭ̓̅͐ͥ̂̔̊ͧ͊҉̶̵̞̩̦̳̺̳̬a̷̬̩̣̫͇̯̥ͯ̽͌̔ͪͯ́́͠l͖͍͕̠̦̼̗͋̍ͨ͘͜k̿̿̎͒ͤ̓̅̀͂ͧ͋̏ͫͣ̔͏̶̥̺͓̘̺͘ḑ̵͎̜̥͕͈̝̫͎̺̮̱̤̠̠͖̳ͮͧͫ͂͒ͤͣ̌̽ͨͪ͒̚͘͘͟j̸̧̻̥̣̪͍͕͇̮͙̹̪̄̄̉̒̊ͩ̅͆̚͟͝ͅf͈̼̩̯̒̎̇̆͆ͪ̈́͛̉̍̏́̄̈́̽̔̍̎̂͘͠n̸̸̡̛̪͕̯̫̹̥͔͚͙̦̩ͬ̆͗͌̔ͫ͆̀́͑̈́ͤ́ͯ̇ͧ͞s̶͚̭̥͉̰̝̺͍̭̤̹̘̮̪͖͖͉̲̾͂̐̋̉̊ͦͥ͘͢a̸̛̯͕̜̭̙̺̬ͫͧ͆ͨ͘͟͝ͅͅḻ͔̦͎̯͍̦͕̊̅ͦ͛͂̍͐̑̔͛̚̕͘k̨͎̳͈̫̫̤̙̪̞̦̳͙̭͓̜̙̞̄̽̊͐̍̓̋͊̎͘ͅa̩̮̘̗͈͙̠̲̠̹̹͚̣̜͖̳̞͇͂͊͒̈́̽̏ͮ̑́̉̾ͣ̽͆̀͘͟͢j̧̛͕̻̻̯̤̹̮̤ͬ̿ͮ͌̔ͧͤ͌ͤͭ͆ͤ̍͜͡fͭͨ̓͋̊҉̸̡̡̮̪͉̣͉̣͇͖̪͖̲͚l͌̎̑ͣͣ̏̀̈́̄͏̶̷̧͇̻̱̰́k̛̯̝͔̰̬̱͔̲̠̤̠̝͚͎͉ͭ͑ͫ̆̉̓;̷̸̨̀͒̏̃ͦ̈́̾̀́̎͢҉͚̼͉s̵͖̺̥͔͇̰̹̮͙͉̻̼̭̻͕̮͇ͨͬͪ͗̇̑̽͋̀j̶̋̊͌ͧͨͭ̓̅͐ͥ̂̔̊ͧ͊҉̶̵̞̩̦̳̺̳̬a̷̬̩̣̫͇̯̥ͯ̽͌̔ͪͯ́́͠l͖͍͕̠̦̼̗͋̍ͨ͘͜k̿̿̎͒ͤ̓̅̀͂ͧ͋̏ͫͣ̔͏̶̥̺͓̘̺͘ḑ̵͎̜̥͕͈̝̫͎̺̮̱̤̠̠͖̳ͮͧͫ͂͒ͤͣ̌̽ͨͪ͒̚͘͘͟j̄̄ḻ͔̦͎̯͍̦͕̊̅ͦ͛͂̍͐̑̔͛̚̕͘k̨͎̳͈̫̫̤̙̪̞̦̳͙̭͓̜̙̞̄̽̊͐̍̓̋͊̎͘ͅa̩̮̘̗͈͙̠̲̠̹̹͚̣̜͖̳̞͇͂͊͒̈́̽̏ͮ̑́̉̾ͣ̽͆̀͘͟͢f͈̼̩̯̒̎̇̆͆ͪ̈́͛̉̍̏́̄̈́̽̔̍̎̂͘͠n̡̛ͬ̆͗͌̔ͫ͆̀́͑̈́ͤ́ͯ̇ͧ͞ HYY123great 专业顶贴2333333333


        IP属地:湖北来自Android客户端6楼2016-02-14 14:45
        收起回复

          J吧节操掉了。


          7楼2016-02-14 14:49
          回复
            用exists


            来自iPhone客户端8楼2016-02-14 16:55
            回复
              用exists


              来自iPhone客户端9楼2016-02-14 16:55
              回复
                对于既又这一类问题 到底怎么解决


                IP属地:湖南来自iPhone客户端10楼2017-06-21 20:49
                回复
                  坟贴?


                  IP属地:浙江11楼2017-06-21 21:07
                  回复
                    内连接啊


                    IP属地:江苏来自Android客户端12楼2017-06-21 23:51
                    回复