选择与主键匹配的每个外键的最后一条记录

时间:2016-10-12 18:33:57

标签: mysql sql database

我陷入了MySQL查询。我有两个表,一个名称是STUDENT,字段名称是(ID,FullName),其中ID是PRIMARY KEY,另一个表是Student_FEE字段是(ID,Student_ID,Date)这里Student_ID是外键。 当我执行此查询时,我得到所有记录,但我只想选择每个Student_ID的最后一行,而不是所有这里都是图像和查询。 记住我只需要ID 5和ID 9

SELECT Student_FEE.*
FROM Student_FEE
LEFT JOIN Student
ON Student_FEE.ID=Student.ID

enter image description here

3 个答案:

答案 0 :(得分:2)

非常感谢你,我发现了这一点,感谢stackoverflow。这是答案

  

SELECT Student_FEE。* FROM Student_FEE LEFT JOIN Student ON Student_FEE.student_ID = Student.ID WHERE Student_FEE.ID IN(SELECT_(ID)FROM Student_FEE GROUP BY Student_ID)

答案 1 :(得分:1)

您应该通过adn in in子句使用组

  SELECT Student_FEE.*
  FROM Student_FEE 
  LEFT JOIN Student 
  ON Student_FEE.student_ID=Student.ID
  where Student_FEE in ( select max(ID)  
                         from Student_FEE 
                         group by student_ID)

答案 2 :(得分:0)

感谢您的上一次查询是正确的,但仅限于我单独运行时。这是我运行您的上一个查询时的结果 从Student_FEE GROUP BY Student_ID中选择MAX(ID) 这给了我这些结果 Query Result 但是,当我在一个人运行时,这给我错误?下面是一些屏幕短片,请你查看@scaisEdge SQL All Query

相关问题