如何从多个表中获取数据?

时间:2014-02-23 12:39:35

标签: mysql

我必须找出输出作为已获得超过70的学生的名字?我的两张桌子都是 -

CREATE TABLE student(Fields_ID INT, Name VARCHAR(20));
        INSERT INTO student(Fields_ID,Name) VALUES(30,'JYOTI');
        INSERT INTO student(Fields_ID,Name) VALUES(31,'KIRTI');
        INSERT INTO student(Fields_ID,Name) VALUES(32,'YOGITA');
        INSERT INTO student(Fields_ID,Name) VALUES(33,'RASHMI');
        INSERT INTO student(Fields_ID,Name) VALUES(34,'NUPUR');
SELECT * FROM student;

CREATE TABLE Marks(Fields_ID INT, Student_ID INT NOT NULL,marks INT NOT NULL);
        INSERT INTO Marks(Fields_ID,Student_ID,Marks) VALUES (30,40,100);
        INSERT INTO Marks(Fields_ID,Student_ID,Marks) VALUES (31,41,88);
        INSERT INTO Marks(Fields_ID,Student_ID,Marks) VALUES (32,42,72);
        INSERT INTO Marks(Fields_ID,Student_ID,Marks) VALUES (33,43,33);
        INSERT INTO Marks(Fields_ID,Student_ID,Marks) VALUES (34,44,15);
SELECT * FROM Marks;

我试图从以下代码返回所需的内容,但我无法形成逻辑。知道怎么做。我是MySql的初学者,所以我无法找到问题。

SELECT student.name,(select (marks>70) from marks)
From Student INNER JOIN marks  
    ON student.Fields_ID = marks.Fields_ID
GROUP BY student.name;

1 个答案:

答案 0 :(得分:1)

您可以使用having子句检查组的条件。使用必须检查标记的sum是否达到了每个学生的限制。

SELECT student.name
From Student 
INNER JOIN marks ON student.Fields_ID = marks.Fields_ID
GROUP BY student.name
HAVING sum(marks) > 70