Mysql совпадение с неизвестным столбцом

У меня проблема с этим запросом MySQL:

select * from tb1 as a 
 where (select count(*) from tb2 as b 
         where Match(b.column1) against(`a.id`) )  = '1'

Mysql имеет эту ошибку:

1054 - Неизвестный столбец "a.id" в "предложении where"

Поэтому я хочу получить все записи в таблице tb1, где количество записей в таблице tb2, где a.id находится в столбце column1, равно 1.

Я надеюсь, что вы понимаете мою цель, иначе не стесняйтесь спрашивать.

2 ответа

Я почти уверен, что проблема в диапазоне данных. Вы используете подзапрос, и в этом подзапросе нет информации о 'a'. Вы можете использовать данные из подзапроса в основном запросе, но не наоборот. Попробуйте что-то подобное (я не могу проверить это, поэтому я не могу гарантировать, что запрос работает):

SELECT a.*, b.count(*) FROM tb1 AS a 
LEFT JOIN tb2 AS b ON Match(b.column1) against(a.id)
HAVING b.count(*) = 1

Имя таблицы должно быть вне кавычек, "a.id" теперь обрабатывается как имя столбца (которого, конечно, не существует) вместо пары table.column:

against(a.`id`) 
Другие вопросы по тегам