我有两张 table 。学生和测试。我想做一个查询,获取成绩高于平均 test_results 的学生的学生姓名(名字和姓氏)。
我认为我当前的查询是错误的。也许是因为我没有加入这两个表?这是我的查询(C# 语言)
MySqlCommand cmd = new MySqlCommand("SELECT student.studentFirstName, student.studentLastName, test.test_results FROM student, test WHERE test_results > (SELECT AVG(test_results) FROM test; ");
you have an error in your SQL syntax
如果我必须加入这两个表。我在两个表中都有一个名为 StudentID 的列
最佳答案
该错误是由于缺少括号造成的。 FROM test
之后应该有括号。
但是您的查询本身是错误的,需要更正。正确的查询如下:
SELECT student.studentFirstName, student.studentLastName, test.test_results
FROM student, test
WHERE student.studentID = test.studentID AND
test_results > (SELECT AVG(test_results) FROM test);
如果您想要具有 JOIN 风格的解决方案,您可以这样做:
SELECT student.studentFirstName, student.studentLastName, test.test_results
FROM student INNER JOIN test ON student.id = test.id
WHERE test_results >( SELECT AVG(test.test_results) FROM test);
关于c# - 聚合 SQL 函数; C# 中的 AVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42618493/