Php 如何在此查询中忽略排除的图像?

Php 如何在此查询中忽略排除的图像?,php,magento,Php,Magento,我有这个查询,它不是我写的,我不太擅长PHP和Magento。我有一个客户,他在一些产品中有几个图像,比如说,一个产品有14个图像,但其中一半被排除在外,他们不想显示它们。因此,我的查询返回每个产品的所有图片。您可以看到下面的代码: $_mediaGalleryData = $_read->fetchAll('SELECT main.entity_id, `main`.`value_id`, `main`.`value` AS `file`,

我有这个查询,它不是我写的,我不太擅长PHP和Magento。我有一个客户,他在一些产品中有几个图像,比如说,一个产品有14个图像,但其中一半被排除在外,他们不想显示它们。因此,我的查询返回每个产品的所有图片。您可以看到下面的代码:

    $_mediaGalleryData = $_read->fetchAll('SELECT
            main.entity_id, `main`.`value_id`, `main`.`value` AS `file`,
            `value`.`label`, `value`.`position`, `value`.`disabled`, `default_value`.`label` AS `label_default`,
            `default_value`.`position` AS `position_default`,
            `default_value`.`disabled` AS `disabled_default`
        FROM `catalog_product_entity_media_gallery` AS `main`
            LEFT JOIN `catalog_product_entity_media_gallery_value` AS `value`
                ON main.value_id=value.value_id AND value.store_id=' . $store_id . '
            LEFT JOIN `catalog_product_entity_media_gallery_value` AS `default_value`
                ON main.value_id=default_value.value_id AND default_value.store_id=0
        WHERE (
            AND main.attribute_id = ' . $_read->quote($_mediaGalleryAttributeId) . ')
            AND (main.entity_id IN (' . $_read->quote($collection->getAllIds()) . '))
        ORDER BY IF(value.position IS NULL, default_value.position, value.position) ASC
    ');
我已添加值。已禁用=0,如下所示:

        WHERE (
            value.disabled = 0
            AND main.attribute_id = ' . $_read->quote($_mediaGalleryAttributeId) . ')
            AND (main.entity_id IN (' . $_read->quote($collection->getAllIds()) . '))
但它也不起作用。我该怎么解决这个问题呢

编辑:所以我将代码改为following,但仍然得到相同的结果

$_mediaGalleryData = $_read->fetchAll('SELECT
            main.entity_id, `main`.`value_id`, `main`.`value` AS `file`,
            `value`.`label`, `value`.`position`, `value`.`disabled`, `value`.`label` AS `label_default`,
            `value`.`position` AS `position_default`,
            `value`.`disabled` AS `disabled_default`
        FROM `catalog_product_entity_media_gallery` AS `main`
            INNER JOIN `catalog_product_entity_media_gallery_value` AS `value`
                ON main.value_id=value.value_id AND value.store_id=' . $store_id . '
        WHERE (
            value.disabled = 0
            AND main.attribute_id = ' . $_read->quote($_mediaGalleryAttributeId) . ')
            AND (main.entity_id IN (' . $_read->quote($collection->getAllIds()) . '))
        ORDER BY IF(value.position IS NULL, value.position, value.position) ASC
    ');

您正在使用两个相同的左连接。删除第二个左联接,因为它与第一个联接相同。并删除select中默认值的名称。@sandrita我实际上也看到了,我只是不想碰代码,因为我不知道它会对其他东西产生什么影响。您认为进行此更改也可以解决我的问题吗?您可以测试删除此项。如果不起作用,请再放一遍。@sandrita我编辑了代码,但仍然得到相同的结果。您可以看到上面的编辑版本。您正在使用两个相同的左连接。删除第二个左联接,因为它与第一个联接相同。并删除select中默认值的名称。@sandrita我实际上也看到了,我只是不想碰代码,因为我不知道它会对其他东西产生什么影响。您认为进行此更改也可以解决我的问题吗?您可以测试删除此项。如果不起作用,请再放一遍。@sandrita我编辑了代码,但仍然得到相同的结果。您可以在上面看到已编辑的版本。