Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como:combinar (espaço de pesquisa) com (juntar com coluna de outra tabela)


Parece que você precisa usar uma expressão de correspondência FULLTEXT em sua condição de junção.

Eu nunca usei uma correspondência de texto completo em uma condição de junção, então não tenho certeza se isso funcionará, mas hipoteticamente isso pode fazer isso:
SELECT DISTINCT c.*
FROM corpuses c JOIN searches s 
  ON (MATCH(c.title, c.body) AGAINST (s.term));

Ok, eu tentei usando suas definições de tabela e alguns dados de exemplo do manual do MySQL. Aqui está uma consulta que funciona (testado com MySQL 5.1.30):
SELECT *
FROM corpuses 
WHERE MATCH(title, body)
  AGAINST ( (SELECT GROUP_CONCAT(term SEPARATOR ' ') FROM searches) 
    IN BOOLEAN MODE);