Mysql SQL中的范围连接
我是SQL的新手,试图通过解决HackerRank上的问题来学习SQL。这是我一直面临的问题。我有两张桌子Mysql SQL中的范围连接,mysql,sql,Mysql,Sql,我是SQL的新手,试图通过解决HackerRank上的问题来学习SQL。这是我一直面临的问题。我有两张桌子 Student : id, name, marks Grades : grade, min_marks, max_marks 从本质上来说,表中给出的分数 1 0 9 2 10 19 ...... 我试图编写以下查询,以生成包含三列的报告:Name、Grade和Mark。成绩低于8分的学生的姓名。报告必须按等级降序排列-即首先输入更高的等级。如果有一个以上的学生被分配到同一个1-10
Student : id, name, marks
Grades : grade, min_marks, max_marks
从本质上来说,表中给出的分数
1 0 9
2 10 19
......
我试图编写以下查询,以生成包含三列的报告:Name、Grade和Mark。成绩低于8分的学生的姓名。报告必须按等级降序排列-即首先输入更高的等级。如果有一个以上的学生被分配到同一个1-10年级,请按学生姓名的字母顺序排列。最后,如果分数低于8,则使用NULL作为他们的名称,并按分数升序列出他们
我开始编写查询,因为我在条件语句中丢失了
SELECT NAME, GRADE, MARK
FROM MARKS m
INNER JOIN ON GRADE
有人能帮我从这里走吗。这应该能让你快到那里了。你问什么并不完全清楚,因为你说你想知道成绩低于8分的学生的名字。然后你说如果分数低于8,就用NULL作为他们的名字。根据这些要求,所有学生的名字都是空的
SELECT
s.name
, g.grade
, s.marks
FROM Student s
JOIN Grades g on s.marks BETWEEN g.min_marks and g.max_marks
WHERE g.grade < 8
ORDER BY g.grade DESC, s.name ASC
你的要求有冲突。无论如何 获取8年级棕褐色程度较低的学生的数据,使用姓名
SELECT
s.name
, g.grade
, s.marks
FROM Student s,Grades g
where s.marks BETWEEN g.min_marks and g.max_marks
and g.grade < 8
ORDER BY g.grade DESC, s.name ASC
如果你想让成绩低于8的学生的名字为空
SELECT
NULL //or ''
, g.grade
, s.marks
FROM Student s,Grades g
where s.marks BETWEEN g.min_marks and g.max_marks
and g.grade < 8
ORDER BY g.grade DESC
上述问题需要执行两个查询。 我就是这样做的,而且很有效
select students.name,grades.grade,students.marks
from students
inner join grades
on students.marks between min_mark and max_mark
and grades.grade > 7
order by grades.grade desc,students.name;
select 'NULL',grades.grade,students.marks
from students
inner join grades
on students.marks between min_mark and max_mark
and grades.grade < 8
order by grades.grade desc,students.marks asc;
如果你的问题是,
我只有一个问题的答案:
select case when g.grade>=8 then s.name else NULL end,
g.grade, s.marks from students s, grades g
where s.marks between g.min_mark and g.max_mark
order by g.grade desc, s.name asc, s.marks asc;
你应该尽量不要问与解决这些问题有关的问题。我可以给你答案,但你不会学的。请放下你的论点好吗?老兄,你还没有查询表的名称。选择从mytablename在…上加入MyTherTableName。。。。在ON关键字后面是放置条件的位置,这些条件用于确定一个表中的行是否与另一个表中的行匹配。