# DSQLマップでループを分割

複数のループを1つのループにマッピングします。

## 始める前に

## このタスクについて

この例では、同じJSONファイル内にある別々の2つのループからデータを抽出し、出力にある1つのループにマッピングするDSQLマップを作成します。

```
{
    "bicycles": [
        {
            "make": "MBIKE",
            "description": "27.5 inch electric mountain bike",
            "color": "blue",
            "price": 899.99
        },
        {
            "make": "EBIKE",
            "description": "Electric hybrid bike",
            "color": "grey/green",
            "price": 999.99
        },
        {
            "make": "WBIKE",
            "description": "Women's road bike",
            "color": "white",
            "price": 299.99
        }
    ],
    "scooters": [
        {
            "make": "ESCOOT",
            "description": "Camou electric scooter",
            "color": "black",
            "price": 749
        },
        {
            "make": "EVSCOOT",
            "description": "Folding electric velocity+ scooter",
            "color": "black",
            "price": 599.99
        },
        {
            "make": "KSCOOT",
            "description": "24 volt kid scooter",
            "color": "white",
            "price": 299.99
        }
    ]
}
```

```
{
    "items": [
        {
            "make": "",
            "description": "",
            "price": ""
        }
    ]
}
```

## 手順

1. ![エレメントのマッピング。](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/Resources/images/tdm-dsql-map-editor-split-map.png)
2. 出力ストラクチャーでitemsエレメントを右クリックし、[Split] (分割)をクリックします。

   これによって同一の新しいループが作成されます。これはbicycle入力エレメントとscooters入力エレメントをマッピングするために必要です。分割後、マップ内のストラクチャーに別々のitemsループが2つ表示されても、出力には両方のループのコンテンツを持つitems配列が1つだけ含まれるようになります。

   この変更はマップにのみ適用され、ストラクチャー自体にはプロパゲートされません。新しいループを右クリックし、[Go to Structure Element] (ストラクチャーエレメントに移動)をクリックしてストラクチャーを開くと、そのストラクチャーが変化していないことがわかります。
3. bicycles入力エレメントを最初のitemsループに、bicyclesエレメントを2番目のループにそれぞれ配置します。

   ![エレメントの配置。](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/Resources/images/tdm-dsql-map-editor-split-map-result.png)

   情報メモヒント: 必要であれば、分割済みのエレメントを右クリックして[Move Up] (上に移動)、[Move Down] (下に移動)、[Delete] (削除)をクリックすることで、そのエレメントを移動または削除できます。

## タスクの結果

```
{
   "items":[
      {
         "make":"MBIKE",
         "description":"27.5 inch electric mountain bike",
         "price":"899.99"
      },
      {
         "make":"EBIKE",
         "description":"Electric hybrid bike",
         "price":"999.99"
      },
      {
         "make":"WBIKE",
         "description":"Women's road bike",
         "price":"299.99"
      },
      {
         "make":"ESCOOT",
         "description":"Camou electric scooter",
         "price":"749.0"
      },
      {
         "make":"EVSCOOT",
         "description":"Folding electric velocity+ scooter",
         "price":"599.99"
      },
      {
         "make":"KSCOOT",
         "description":"24 volt kid scooter",
         "price":"299.99"
      }
   ]
}
```

```
FROM itemsbycategory
SELECT {
   items = (
      FROM bicycles
      SELECT {
         make = make,
         description = description,
         price = price
      }
      UNION ALL
      FROM scooters
      SELECT {
         make = make,
         description = description,
         price = price
      }
   )
}
```