2016-10-12 3 views
-1

Я застрял в запросе MySQL. У меня есть две таблицы, одно имя - СТУДЕНТ, а имена полей - это (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

ответ

0

Вы должны использовать группу по ADN в пункте

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) 
+0

Благодаря вашей последний запрос правильный, но только когда я запускаю отдельно. Вот результат, когда я запускаю ваш последний запрос –

+0

Спасибо, что ваш последний запрос верен, но только когда я запускаю отдельно. Вот результат, когда я запускаю ваш последний запрос SELECT MAX (ID) FROM Student_FEE GROUP BY Student_ID –

+0

, пожалуйста, прочитайте ответ на мой вопрос, надеюсь, что вы поймете лучше, потому что здесь я не могу опубликовать какой-либо рис. в любом случае это ответ на ваш ответ. этот вопрос дал мне ошибку # 1054 - Неизвестный столбец 'moon_creations.Student_FEE' в 'IN/ALL/ANY subquery' –

0

Благодаря ваш последний запрос является правильным, но только тогда, когда я бегу в отдельности. Вот результат, когда я запускаю ваш последний запрос. SELECT MAX (ID) FROM Student_FEE GROUP BY Student_ID Это дает мне эти результаты Query Result Но когда я запускаю все на одном, это даст мне ошибку? Ниже приведены некоторые шорты экрана, пожалуйста, просмотрите @scaisEdge SQL All Query

0

Спасибо, что так много я нашел это, благодаря stackoverflow. Вот ответ

ВЫБЕРИТЕ Student_FEE. * FROM Student_FEE LEFT JOIN Студента ПО Student_FEE.student_ID = Student.ID WHERE Student_FEE.ID IN (SELECT MAX (ID) FROM Student_FEE GROUP BY student_id)