Вы делаете классическое декартовое соединение с вашим запросом:
SELECT * FROM files, access_files WHERE student_id ='$studentid'
Вам нужно указать, как связаны две таблицы:
SELECT * FROM files a, access_files b WHERE a.student_id ='$studentid' and b.studentID=a.student_id
Если вы не укажите ссылку - или ее нет, база данных попытается связать каждую строку в первой таблице с каждой отдельной строкой во второй.
Файл уже открыт. open
принимает строковое имя файла и создает объект открытого файла, но вам не нужно это делать, потому что объекты в request.files
уже являются открытыми файлоподобными объектами.
portfolios = csv.DictReader(request.files['portfolios'])