Mysql INNODB全文搜索与连接:不同表上的搜索词

Mysql INNODB全文搜索与连接:不同表上的搜索词,mysql,sql,full-text-search,left-join,innodb,Mysql,Sql,Full Text Search,Left Join,Innodb,我过去常常对MyISAM使用以下查询: SELECT *, table2.columnx FROM table1 LEFT JOIN table2 ON table1.columnx_id = table2.id WHERE MATCH(table1.columny, table2.columnx) AGAINST("+key* +word*" IN BOOLEAN MODE); 这将在多个表上进行全文搜索 现在,我切换到INNODB,得到以下错误消息: 一般

我过去常常对MyISAM使用以下查询:

SELECT *, table2.columnx 
FROM table1 
    LEFT JOIN table2 ON table1.columnx_id = table2.id 
WHERE MATCH(table1.columny, table2.columnx) AGAINST("+key* +word*" IN BOOLEAN MODE);
这将在多个表上进行
全文搜索

现在,我切换到INNODB,得到以下错误消息:

一般错误:1210个不匹配的参数

我按照如下方式重写了查询,以删除错误消息并使其正常工作:

SELECT *, table2.columnx 
FROM table1 
    LEFT JOIN table2 ON table1.columnx_id = table2.id 
WHERE MATCH(table1.columny) AGAINST("+key* +word*" IN BOOLEAN MODE) 
      OR MATCH(table2.columnx) AGAINST("+key* +word*" IN BOOLEAN MODE);
只要所有搜索词
key
word
都在同一个表中,这项功能就可以正常工作

但是如果例如
表1
中,而
单词
表1
中,我不会得到任何结果


如何解决这个问题?

正如@Akina所描述的,这似乎是不可能的,因为
INNODB
不允许对两个表进行
全文搜索


我将仅为
全文搜索创建第三个表,并用两个表中的数据填充该表。

使用这两列和相应的引用创建第三个表。通过此表创建FT索引并在查询中使用它。用触发器逻辑更新这个表数据。@Akina我会的。但总的来说:这种情况可能吗?或者说,使用INNODB而仅使用MyISAM(当然,它支持FTS)时,这种情况根本不可能吗?我看不到在任何引擎上不允许使用这种技术的限制。@Akina我说的是我的问题,不是你的评论。这是唯一的可能性吗,因为INNODB不允许在两个表上进行全文搜索——我提供了支持这一点的逻辑。