MySQL 全文搜索不适用于左连接

MySQL Full Text Search not working with left join

我在 table 上使用全文搜索,然后使用来自不同数据库的 table 加入它。 table (table1) 在列 name 上定义了一个全文索引。

当我尝试使用全文搜索时,以下查询不起作用:

SELECT t1.id, t2.id, t2.url
FROM `db1`.table1 t1
LEFT JOIN `db2`.table2 t2
ON t1.column1 = t2.column1
WHERE t2.column1 IS NOT NULL
AND MATCH (t1.name) AGAINST ('searchString' IN NATURAL LANGUAGE MODE)

但是在没有左联接的情况下使用它时,查询有效:

SELECT t1.id
FROM `db1`.table1 t1
WHERE MATCH (t1.name) AGAINST ('searchString' IN NATURAL LANGUAGE MODE)

注意:我不能使用 LIKE %searchString% 而不是 match-against 来解决性能问题。

有没有办法在同一个查询中使用全文搜索和左连接?

编辑:问题似乎与两个 table 不在同一个数据库中这一事实有关。当尝试使用来自同一数据库的两个 table 执行相同的查询时,它有效。知道为什么会发生这种情况吗?

MATCH(t1.name) AGAINST ('searchString' IN BOOLEAN MODE)>0

是的,我们可以在同一个查询中使用全文搜索和左连接。

查看示例并查询。 : Link

        SELECT t1.id, t2.id, t2.url
        FROM `db1`.table1 t1
        LEFT JOIN `db2`.table2 t2
        ON t1.column1 = t2.column1 and t2.column1 IS NOT NULL
        where MATCH (t1.name) AGAINST ('searchString' IN NATURAL LANGUAGE MODE)

如果有任何错误,请告诉我们。

仅供参考 where t2.column1 is not null 将左联接变为联接。 左连接是来自第一个 table 的所有数据,但是当您在右侧 table (第二个)指定 where 子句时,您会强制查询进入连接。这可能是查询不起作用的原因。第2个(右)没有匹配数据table.