SELECT t.teacherId, s1.subjectName AS name1, s2.subjectName AS name2, s3.subjectName AS name3
FROM teacherProfile t
LEFT JOIN
subjects s1
ON s1.subjectId = t.subjectOne
LEFT JOIN
subjects s2
ON s2.subjectId = t.subjectTwo
LEFT JOIN
subjects s3
ON s3.subjectId = t.subjectThree
WHERE 'English' IN (s1.subjectName, s2.subjectName, s3.subjectName)
o, riferendosi al tuo problema originale,
SELECT t.teacherId, s1.subjectName AS name1, s2.subjectName AS name2, s3.subjectName AS name3
FROM teacherProfile t
LEFT JOIN
subjects s1
ON s1.subjectId = t.subjectOne
LEFT JOIN
subjects s2
ON s2.subjectId = t.subjectTwo
LEFT JOIN
subjects s3
ON s3.subjectId = t.subjectThree
WHERE MATCH(s1.subjectName, s2.subjectName, s3.subjectName) AGAINST ('+English +Physics' IN BOOLEAN MODE)
(funziona solo se entrambe le tabelle sono MyISAM
)
Questo restituirà tutti gli insegnanti che insegnano entrambi English
e Physics
.