---
title: "erweitertes INSERT Statement"
url: "https://www.typo3.net/d/115032-erweitertes-insert-statement"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage"]
created: "2013-06-05"
last_reply: "2013-06-10"
replies: 3
solved: false
page: 1
pages: 1
lang: "de"
---

# erweitertes INSERT Statement

Extensions › Entwicklung · 3 Antworten · gestartet 2013-06-05

## Eröffnungsbeitrag

**devzone** · 2013-06-05 · [Beitrag #1](https://www.typo3.net/d/115032-erweitertes-insert-statement/1)

Ich muss eine bestimmte Zeile (uid) in der Tabelle (tt news) auswählen, daher benötige ich eine erweiterte INSERT INTO variante.

```php
$userid_fe = 704;

$feUserRecord_ttnews = array (
 'tx_ctwextendnews_subscriber' => $userid_fe 
);
```

ALTE Anweisung ohne WHERE

```php
$res_ttnews=$GLOBALS['TYPO3_DB']->exec_INSERTquery($ttnews_table, $feUserRecord_ttnews);
```

...da ich aber noch eine WHERE Bedingung benötige muss ich auf ein erweitertes INSERT Statement mit SELECT zurückgreifen ([Link: INSERT-SELECT](http://dev.mysql.com/doc/refman/5.1/en/insert-select.html)).

Leider bekomme ich das nicht ganz hin bzw. geht das überhaupt noch mit den Typo3 anweisungen?

NEUE Anweisung mit WHERE

```php
$res_ttnews="INSERT INTO tt_news (tx_ctwextendnews_subscriber) SELECT uid, tx_ctwextendnews_subscriber, '704' FROM tt_news WHERE uid=101";
```

Die Zahlen (101,704) werden später wieder durch variablen ersetzt.

## Antworten

### [#2](https://www.typo3.net/d/115032-erweitertes-insert-statement/2) · Unbekannter Benutzer · 2013-06-07

Wenn du ein INSERT SELECT machst müssen die Spalten übereinstimmen, d.h. Du sagt INSERT ... (tx_ctwextendnews_subscriber) dann darf dein SELECT auch nur eine Spalte (nämlich das was in tx_ctwextendnews_subscriber rein soll) zurückgeben... Mir ist noch nicht ganz klar, was du bezwecken willst sonst würde ich dir mit der Query helfen.

### [#3](https://www.typo3.net/d/115032-erweitertes-insert-statement/3) · devzone · 2013-06-10

> **kitsunet schrieb:**
>
> Wenn du ein INSERT SELECT machst müssen die Spalten übereinstimmen, d.h. Du sagt INSERT ... (tx_ctwextendnews_subscriber) dann darf dein SELECT auch nur eine Spalte (nämlich das was in tx_ctwextendnews_subscriber rein soll) zurückgeben... Mir ist noch nicht ganz klar, was du bezwecken willst sonst würde ich dir mit der Query helfen.

es ging um eine selektion von usern also eine komma sepperierte Liste von ids...ich habe mich aber nun aufgrund von user Meinungen und performance gründen umentschieden auf eine MM Tabelle. Eine insert select Anweißung erweißt sich nicht als effektiv.

### [#4](https://www.typo3.net/d/115032-erweitertes-insert-statement/4) · Unbekannter Benutzer · 2013-06-10

Ah verstehe! Ja MM ist sicher besser, aber wenn Du sowas machen willst muss trotzdem die Spaltenzahl übereinstimnmen, d.h. dein SELECT muss dann einen kommaseparierten String zurück geben:

INSERT INTO tt_news (tx_ctwextendnews_subscriber) SELECT CONCAT_WS(',', uid, tx_ctwextendnews_subscriber, '704') FROM tt_news WHERE uid=101

Würde dann in die Spalte "tx_ctwextendnews_subscriber" den kommaseparierten String aus uid,tx_ctwextendnews_subscriber und 704  schreiben.

---

Quelle: „erweitertes INSERT Statement“, typo3.net, https://www.typo3.net/d/115032-erweitertes-insert-statement
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
