带子查询的SQL查询-有更好的方法吗?

时间:2018-08-08 10:55:57

标签: sql sql-server

下面的3个表格

学生

  StudentId,StudentName
1 aaa
2桶
3 cc
 

课程

  CourseId,CourseName
100 xxx
101年
102 zzz
 

学生课程

  StudentId,CourseID
1100
1 101
2 100
2 102
 

要按字母顺序选择第一个参加xxx课程的所有学生的课程,我可以编写以下查询:

  SELECT学生姓名,课程名称
来自学生
内联接StudentCourse ON Student.StudentId = StudentCourse.StudentID
INNER JOIN关于StudentCourse.CourseID的课程= Course.CourseID
在(中的StudentName
    选择顶部1学生姓名
    来自学生
    INNER JOIN Student.StudentID上的StudentCourse = StudentCourse.StudentID
    INNER JOIN关于StudentCourse.CourseID = Course.StudentID的课程
    WHERE CourseName ='xxx'
    按学生姓名订购)
 

有没有一种更有效的方式来执行/编写此操作而无需进行子选择,因为看来我在执行相同的查询两次。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用窗口功能和HtmlDocument doc = new HtmlDocument(); var d = doc.GetElementbyId("odds-data-table"); HtmlNodeCollection listItems = d.SelectNodes(".//a"); //This list contains all your href values List<string> hrefs = new List<string>(); foreach (var item in listItems) { var href = item.Attributes["href"].Value; hrefs.Add(href); }

top (1) with ties