sql >> Databasteknik >  >> RDS >> Mysql

Jämför MYSQL vid anslutningsproblem

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)

, eller, med hänvisning till ditt ursprungliga problem,

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)

(fungerar bara om båda tabellerna är MyISAM )

Detta kommer att returnera alla lärare som undervisar i både English och Physics .



  1. Doctrine Query Language få max/senaste raden per grupp

  2. Hur man frågar data från databasen med hjälp av frågesträngsvärden

  3. Upptäck på varandra följande datumintervall med SQL

  4. Hur kan jag infoga data i MySQL-databasen?