Попробуйте это:
SELECT
DISTINCT c.id
FROM
carpets AS c
INNER JOIN carpet_relations AS r1 ON c.id = r1.carpet_id
INNER JOIN carpet_relations AS r2 ON c.id = r2.carpet_id
INNER JOIN carpet_relations AS r3 ON c.id = r3.carpet_id
WHERE
c.active = '1'
AND ((c.title LIKE '%north%')
OR (c.title LIKE '%tabriz%')
OR (c.item_no LIKE '%north%')
OR (c.item_no LIKE '%tabriz%')
OR (c.pattern LIKE '%north%')
OR (c.pattern LIKE '%tabriz%')
OR (c.period LIKE '%north%')
OR (c.period LIKE '%tabriz%')
OR (c.country LIKE '%north%')
OR (c.country LIKE '%tabriz%'))
AND (c.width_feet BETWEEN 0 AND 22)
AND (c.width_inches BETWEEN 0 AND 11)
AND (c.height_feet BETWEEN 0 AND 49)
AND (c.height_inches BETWEEN 0 AND 11)
ORDER BY
c.item_no
Я удалил разделы "LIKE '% north tabriz%'", потому что они были избыточными, поскольку, если он соответствует только "северному табризу", то "северу" и "табризу""также было бы верно.
Кроме того, я убрал одинарные кавычки, которые окружали числа в предложениях между ними.
Невозможно воспроизвести таблицы для проверки, так как у вас есть только 1Таблица показана, но надеюсь, что это поможет.