Я пытаюсь выполнить полнотекстовый поиск по нескольким таблицам продуктов;как имя производителя, название модели продукта, название категории продукта и т. д.
Я использую MariaDB 10.3, полный текст был включен для всех соответствующих столбцов * .name, и я использую движок innodb
SELECT f.id AS family_id,
f.name AS family_name,
mr.id AS manufacturer_id,
mr.name AS manufacturer_name,
mm.id AS model_id,
mm.name AS model_name,
mm.year AS model_year
FROM product_manufacturer mr
LEFT JOIN product_family f ON
f.manufacturer_id=mr.id
LEFT JOIN `product_model` mm ON
f.id=mm.product_family_id
WHERE
MATCH (mr.name) AGAINST ('TestProduct' IN NATURAL LANGUAGE MODE)
^^ Это работает
Но если бы я начал добавлять условия ИЛИ или начать поиск по объединенным столбцам, я получал бы весь набор данных, как если бы вообще не было условий, как показано в 2 запросах ниже
SELECT f.id AS family_id,
f.name AS family_name,
mr.id AS manufacturer_id,
mr.name AS manufacturer_name,
mm.id AS model_id,
mm.name AS model_name,
mm.year AS model_year
FROM product_manufacturer mr
LEFT JOIN product_family f ON
f.manufacturer_id=mr.id
LEFT JOIN `product_model` mm ON
f.id=mm.product_family_id
WHERE
MATCH (mr.name) AGAINST ('TestProduct' IN NATURAL LANGUAGE MODE)
SELECT f.id as family_id,
f.name as family_name,
mr.id as manufacturer_id,
mr.name as manufacturer_name,
mm.id as model_id,
mm.name as model_name,
mm.year as model_year
FROM product_manufacturer mr
LEFT JOIN product_family f on
f.manufacturer_id=mr.id
LEFT JOIN `product_model` mm on
f.id=mm.product_family_id
WHERE
MATCH (mm.name) AGAINST ('TestProduct' IN NATURAL LANGUAGE MODE)
OR MATCH (mr.name) AGAINST ('TestProduct' IN NATURAL LANGUAGE MODE)