You can try:
SELECT
student_id,
COUNT(*) total
FROM your_table
WHERE language_id IN (3,4)
GROUP BY student_id
HAVING COUNT(*) = 2;
It just INdoes not guarantee that the student is involved as in the language identifier 3 & 4.
You need to use GROUP BY student_id HAVING COUNT(*) = 2to ensure that those student_idare in the results that are involved in bothlanguage id 3 & 4
INNER JOIN. .
SELECT
A.student_id
FROM your_table A
INNER JOIN your_table B ON A.student_id = B.student_id
AND A.language_id = 3 AND B.language_id = 4