首页 > 解决方案 > Magento 2.3.6 分层导航选择异常错误

问题描述

我正在使用 MariaDB 10.4.17 成功运行 Magento 2.3.6,但是当我使用分层导航并使用不是布尔过滤器的过滤器时遇到了问题。

这似乎是由创建临时表的搜索引起的,然后在插入该临时表时出现“未知列”错误。

运行以下查询时发生错误:

INSERT INTO `sk1search_tmp_5fd0fbe8de0532_40559134`
SELECT `main_select`.`entity_id`, SUM(score) AS `relevance`
FROM (
    SELECT DISTINCT  `search_index`.`entity_id`, (((0) + (0)) * 1) AS `score`
    FROM `sk1catalog_product_index_eav` AS `search_index`
    INNER JOIN `sk1cataloginventory_stock_status` AS `stock_index`
        ON stock_index.product_id = search_index.entity_id
        AND `stock_index`.`website_id` = 0
        AND `stock_index`.`stock_id` = 1 
    INNER JOIN (
        SELECT `entity_id`, `store_id`, `attribute_id`, `value`
        FROM sk1catalog_product_index_eav
        WHERE `attribute_id`=137 AND `store_id`=1
        GROUP BY CONCAT(`entity_id`," ",`attribute_id`," ",`store_id`," ",`value`)
    ) AS `acidity_filter` 
        ON `search_index`.`entity_id` = `acidity_filter`.`entity_id`
        AND `acidity_filter`.`attribute_id` = 137
        AND `acidity_filter`.`store_id` = 1
    INNER JOIN `sk1cataloginventory_stock_status` AS `acidity_filter_stock_index`
        ON acidity_filter_stock_index.product_id = acidity_filter.source_id
        AND `acidity_filter_stock_index`.`website_id` = 0
        AND `acidity_filter_stock_index`.`stock_id` = 1
    INNER JOIN `sk1catalog_category_product_index_store1` AS `category_ids_index`
        ON search_index.entity_id = category_ids_index.product_id
        AND category_ids_index.store_id = '1'
    WHERE (search_index.store_id = '1')
        AND (`search_index`.`attribute_id` = 137)
        AND (`search_index`.`value` = '28')
        AND (category_ids_index.category_id in ('58'))
        AND (acidity_filter.value = '28')
) AS `main_select`
GROUP BY `entity_id`
ORDER BY `relevance` DESC, `entity_id` DESC
LIMIT 10000

错误信息:

Column not found: 1054 Unknown column 'acidity_filter.source_id' in 'on clause',"

感谢您提供有关修复此问题的任何帮助或指示

标签: mysqlmagento2layered-navigation

解决方案


我遇到了这个问题,我通过从我的 composer.json 中删除“补丁/模块目录搜索修复插入”补丁解决了这个问题。它与 2.3.6 不兼容


推荐阅读