Паутина социальности или социальная сеть

Допустим, мы разрабатываем социальную сеть для студентов. У нас есть 2 таблицы в базе данных.

Students (ID, name, grade) - студенты (ID, имя, средний балл)
Likes (like_ID, liked_ID) - лайки одного студента страницы другого.
like_ID - это ID того, кто поставил лак.
liked_ID - ID того, кого "лайкнули".

Нужно выполнить несколько задач.
a) Получить имена и средний балл всех студентов, которые были "лайкнуты" более чем одним студентом.
б) Получить имена и средний балл студентов А, которые лайкнули студентов В, но при этом студенты В не поставили лайк ни на одной из страниц других студентов.
в) Вернуть имена и средний балл всех студентов, которые не лайкали чужие страницы и не были лайкнуты другими пользователями.

Реализуйте все три пункта с помощью PHP и SQL запросов. Обошлось без PHP.


Эти ответы не идеальные, но, для тестовой задачи подойдут

a) Получить имена и средний балл всех студентов, которые были "лайкнуты" более чем одним студентом.

<?
SELECT
    s
.name as name,
    
s.grade as grade 
FROM 
`studentss
INNER JOIN Likes l ON s
.id l.like_ID
WHERE l
.liked_ID 2
GROUP BY s
.id
?>


б) Получить имена и средний балл студентов А, которые лайкнули студентов В, но при этом студенты В не поставили лайк ни на одной из страниц других студентов.

<?
SELECT 
    s
.name as name,
    
s.grade as grade
FROM 
`studentss
INNER JOIN Likes l ON s
.id l.like_ID
WHERE
    l
.like_ID NOT IN(SELECT l.liked_ID FROM Likes )
GROUP BY l.liked_ID
?>


в) Вернуть имена и средний балл всех студентов, которые не лайкали чужие страницы и не были лайкнуты другими пользователями.

<?
SELECT 
    s
.name,s.grade
FROM 
`studentss
WHERE 
    s
.id NOT IN(SELECT liked_ID FROM Likes GROUP BY liked_ID)
    AND 
s.id NOT IN(SELECT like_ID FROM Likes GROUP BY like_ID)
?>