# sql query für varianten bilder

**URL:** https://forum.shopware.com/t/sql-query-fur-varianten-bilder/56794
**Category:** Programmierung
**Created:** [30. November 2018 um 10:46 UTC](https://forum.shopware.com/t/sql-query-fur-varianten-bilder/56794 "2018-11-30T10:46:00Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![wontfix](https://avatars.discourse-cdn.com/v4/letter/w/b19c9b/32.png) [@wontfix](https://forum.shopware.com/u/wontfix)
#### Post date: [30. November 2018 um 10:46 UTC](https://forum.shopware.com/t/sql-query-fur-varianten-bilder/56794/1 "2018-11-30T10:46:00Z")

</div>

kennt jemand die sql query um artikel bilder zu holen, MIT richtige varianten bilder?  
oder irgendwelche hinweise wie bilder in datenbank an varianten artikeln zugeordnet werden?

gibt es ne bessere dokumentation als das hier: [What is an item?](https://developers.shopware.com/blog/2015/10/07/what-is-an-item/) ?

wieso? die shopware feed (produktexport) feature ist zu langsam und hungrig für mein boss, daher soll ich diese mit sql queries bauen…

---

<div class="post-metadata">

### Author: ![stormerMike](https://avatars.discourse-cdn.com/v4/letter/s/e0b2c6/32.png) [@stormerMike](https://forum.shopware.com/u/stormerMike)
#### Post date: [30. November 2018 um 13:26 UTC](https://forum.shopware.com/t/sql-query-fur-varianten-bilder/56794/2 "2018-11-30T13:26:28Z")

</div>

Die Shopware-Core Dateien sind hier immer ein gutes Nachschlagwerk wenn es die Dokumentation nicht hergibt.

In der Datei **engine/Shopware/Models/Article/Repository.php** (über engine/Shopware/Core/sArticles.php in sGetArticlePictures()) gefunden) gibt es die Funktion **getVariantImagesByArticleNumberQueryBuilder()** die nahe an deiner Anforderung sein sollte da man alle Joins sieht die gemacht werden. Kannst dir die Query loggen, selber das SQL nachbauen oder meinen Vorschlag unten mit dem Profiler wählen.

```
    /**
     * Helper function to create the query builder for the "getVariantImagesByArticleNumberQuery" function.
     * This function can be hooked to modify the query builder of the query object.
     *
     * @param $number
     *
     * @return \Doctrine\ORM\QueryBuilder
     */
    public function getVariantImagesByArticleNumberQueryBuilder($number)
    {
        $builder = $this->getEntityManager()->createQueryBuilder();

        $builder->select([
            'imageParent.id',
            'imageParent.articleId',
            'imageParent.articleDetailId',
            'imageParent.description',
            'imageParent.path',
            'imageParent.main',
            'imageParent.position',
            'imageParent.width',
            'imageParent.height',
            'imageParent.extension',
            'imageParent.parentId',
            'attribute.attribute1',
            'attribute.attribute2',
            'attribute.attribute3',
        ])
            ->from('Shopware\Models\Article\Image', 'images')
            ->innerJoin('images.articleDetail', 'articleDetail')
            ->innerJoin('images.parent', 'imageParent')
            ->leftJoin('imageParent.attribute', 'attribute')
            ->where('articleDetail.number = ?1')
            ->setParameter(1, $number)
            ->orderBy('imageParent.main', 'ASC')
            ->addOrderBy('imageParent.position', 'ASC');

        return $builder;
    }

```

Alternativ dazu könntest du dir auch das [Profiler-Plugin](https://github.com/FriendsOfShopware/FroshProfiler) installieren da dort in der Debug-Toolbar - wenn ich mich nicht täusche - alle SQL’s in Reinform (wie diese abgesetzt wurden) angezeigt werden.

---

<div class="post-metadata">

### Author: ![wontfix](https://avatars.discourse-cdn.com/v4/letter/w/b19c9b/32.png) [@wontfix](https://forum.shopware.com/u/wontfix)
#### Post date: [4. Dezember 2018 um 10:34 UTC](https://forum.shopware.com/t/sql-query-fur-varianten-bilder/56794/3 "2018-12-04T10:34:46Z")

</div>

hab die profiler völlig vergessen! jou, der zeigt die puren sql queries und dank deine tip mit getVariantImagesByArticleNumberQueryBuilder konnte ich die richtige query in profiler finden. danke fürs graben! 😃

shopware export braucht bei unsere ~13k artikeln über 15minuten (hab da abgebrochen) und mein pure sql/php script ~10 sekunden…

---

<div class="post-metadata">

### Author: ![timoz](https://avatars.discourse-cdn.com/v4/letter/t/67e7ee/32.png) [@timoz](https://forum.shopware.com/u/timoz)
#### Post date: [19. November 2019 um 15:46 UTC](https://forum.shopware.com/t/sql-query-fur-varianten-bilder/56794/4 "2019-11-19T15:46:41Z")

</div>

Hey @wontfix‍,&nbsp;kannst du den relevanten Teil deines SQL-Skripts hier in dem Thread teilen? Ich bin schon eine ganze Weile heute auf der Suche nach einer Lösung für genau dieses Problem und ich bin grade echt am Verzweifeln.

---

<div class="post-metadata">

### Author: ![wontfix](https://avatars.discourse-cdn.com/v4/letter/w/b19c9b/32.png) [@wontfix](https://forum.shopware.com/u/wontfix)
#### Post date: [20. November 2019 um 07:24 UTC](https://forum.shopware.com/t/sql-query-fur-varianten-bilder/56794/5 "2019-11-20T07:24:50Z")

</div>

```
SELECT
media.path
FROM
s_articles_img image
INNER JOIN s_media media ON image.media_id = media.id
INNER JOIN s_articles_img childImage ON childImage.parent_id = image.id
INNER JOIN s_articles_details variant ON variant.id = childImage.article_detail_id
LEFT JOIN s_media_attributes mediaAttribute ON mediaAttribute.mediaID = image.media_id
LEFT JOIN s_articles_img_attributes imageAttribute ON imageAttribute.imageID = image.id
INNER JOIN s_media_album_settings mediaSettings ON mediaSettings.albumID = media.albumID
WHERE
childImage.article_detail_id = :articleDetailsId
ORDER BY
imageAttribute.attribute1 DESC,
image.main ASC,
image.position ASC

```

und füttere die gewünschte articleDetailsId

---

<div class="post-metadata">

### Author: ![timoz](https://avatars.discourse-cdn.com/v4/letter/t/67e7ee/32.png) [@timoz](https://forum.shopware.com/u/timoz)
#### Post date: [20. November 2019 um 07:49 UTC](https://forum.shopware.com/t/sql-query-fur-varianten-bilder/56794/6 "2019-11-20T07:49:49Z")

</div>

**Danke!** Funktioniert perfekt! Ich habe nur die letzten drei Joins weggelassen, da ich diese nicht brauche. Oder übersehe ich etwas?
