Mysql 关于连接问题的比较

Mysql 关于连接问题的比较,mysql,left-join,Mysql,Left Join,从 因此,我正在研究fulltextsearch对视图限制的其他方法 我更新了提供的查询 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

因此,我正在研究fulltextsearch对视图限制的其他方法

我更新了提供的查询

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 name1 = ENGLISH'
最后我得到了未知的列名1,我甚至不能对数据进行简单的查询吗

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)
,或者,关于您最初的问题

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)
(仅当两个表都是MyISAM时有效)


这将返回同时教授
英语
物理
的所有教师

您不能参考列标签;您必须引用该列,如下所示:

WHERE s1.subjectName = 'ENGLISH'

您得到的列名未知,因为您有语法错误

换成

s1.subjectName=‘英语’