检索全部课程都及格的学生的学号和姓名
检索选修人数最多的课程的课程号和课程名
linqpad没用过,linq代码如下,注意自己新建linq to sql实体类
using System;
using System.Linq;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
DataClasses1DataContext ctx = new DataClasses1DataContext();
var rs = ctx.学生表.Where(s => ctx.成绩表.Where(i => !ctx.成绩表.Where(i1 => i1.成绩 < 60).Select(x => x.学生id).Distinct().Contains(i.学生id)).Select(i => i.学生id).Distinct().Contains(s.id));
foreach (var r in rs) Console.WriteLine(r.姓名+","+r.学号);
var rs1 = ctx.课程表.Where(i => i.id == ctx.成绩表.GroupBy(x => x.课程id).OrderByDescending(x => x.Count()).Select(x => x.Key).First());
foreach (var r in rs1) Console.WriteLine(r.id+","+r.课程名称);
Console.ReadKey();
}
}
}
有帮助麻烦点下【采纳该答案】
1、对学号进行分组,having中判断min(score)>=60
2、子查询对学号进行分组,查询count(1) cou,学号。
然后select * from (子查询结果)order by cou desc limit 1