MYSQL сравнить по проблеме объединения - PullRequest
1 голос
/ 05 октября 2010

По результатам поиска MySQL с несколькими идентификаторами

Так что я смотрю на другие способы обойти ограничение полнотекстового поиска для представлений.

Я обновил предоставленный запрос ...

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'

до конца, я получу Неизвестный столбец name1, могу ли я даже сделать простой запрос наданные?

Ответы [ 3 ]

1 голос
/ 05 октября 2010

вы не можете ссылаться на метки столбцов; Вы должны ссылаться на столбец, например так:

WHERE s1.subjectName = 'ENGLISH'
1 голос
/ 05 октября 2010

вы получаете неизвестное имя столбца из-за синтаксической ошибки

изменить на

s1.subjectName = 'АНГЛИЙСКИЙ'

1 голос
/ 05 октября 2010
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)

Это вернет всех учителей, которые преподают English и Physics.

...