Insert into Probleme

Insert into Probleme

am 13.02.2006 13:26:55 von Herby

Hi,

Ich möchte aus Tabelle import die Url für das Bild übernehmen und in Tabelle
produkte einfügen wenn beide Artikelnummern der Tabellen übereinstimmen.

mein SQL-Befehl:
INSERT INTO produkte( image )
SELECT import.bildurl
FROM import
WHERE produkte.products_model = import.artikelnummer

aber MySQL meldet:
#1109 - Unknown table 'produkte' in where clause

was mache ich falsch - Tabelle produkte existiert sicher.

auch versucht:

INSERT INTO produkte( image )
SELECT import.bildurl
FROM import , produkte
WHERE produkte.products_model = import.artikelnummer

aber:
#1066 - Not unique table/alias: 'products'

wenn ich das jedoch nur als select Anweisung ausführe dann klappts:
SELECT import.bildurl
FROM import , produkte
WHERE produkte.products_model = import.artikelnummer

mfg
H. Ziep

Re: Insert into Probleme

am 13.02.2006 13:33:56 von Dirk Brosowski

Herby schrieb:
> Hi,
>
> Ich möchte aus Tabelle import die Url für das Bild übernehmen und in Tabelle
> produkte einfügen wenn beide Artikelnummern der Tabellen übereinstimmen.
>
> mein SQL-Befehl:
> INSERT INTO produkte( image )
> SELECT import.bildurl
> FROM import
> WHERE produkte.products_model = import.artikelnummer


Das WHERE bezieht sich hier auf das SELECT und in dem FROM des SELECT
steht keine Tabelle produkte.

MfG

Dirk

Re: Insert into Probleme

am 13.02.2006 14:01:44 von Herby

> Das WHERE bezieht sich hier auf das SELECT und in dem FROM des SELECT
> steht keine Tabelle produkte.

Ok, dann ist klar warum der 1. Versuch nicht klappte aber immernoch unklar
warum der 2. scheitert

INSERT INTO produkte( image )
SELECT import.bildurl
FROM import , produkte
WHERE produkte.products_model = import.artikelnummer

denn hier habe ich ja in FROM die produkte untergebracht.

Uiuiui, bin für jede Hilfe dankbar.

mfg
Herby

Re: Insert into Probleme

am 13.02.2006 14:15:38 von Dominik Echterbruch

Herby wrote:
>>Das WHERE bezieht sich hier auf das SELECT und in dem FROM des SELECT
>>steht keine Tabelle produkte.
>
>
> Ok, dann ist klar warum der 1. Versuch nicht klappte aber immernoch unklar
> warum der 2. scheitert
>
> INSERT INTO produkte( image )
> SELECT import.bildurl
> FROM import , produkte
> WHERE produkte.products_model = import.artikelnummer
>
> denn hier habe ich ja in FROM die produkte untergebracht.

Da ich nicht weiß, welche Version du hast, tippe ich mal auf das
ebenfalls ordentlich dokumentierte Problem, daß du keine Zeilen in eine
Tabelle einfügen kannst, aus der du selektierst. Jedenfalls nicht in der
selben Anweisung. Das hätte dir die Doku aber auch verraten...


Grüße,
Dominik
--
MonstersGame - Die Schlacht zwischen Vampiren und Werwölfen
http://spielwelt6.monstersgame.net/?ac=vid&vid=3018786

Re: Insert into Probleme

am 13.02.2006 15:14:51 von Dirk Brosowski

Herby schrieb:
>>Das WHERE bezieht sich hier auf das SELECT und in dem FROM des SELECT
>>steht keine Tabelle produkte.
>
>
> Ok, dann ist klar warum der 1. Versuch nicht klappte aber immernoch unklar
> warum der 2. scheitert
>
> INSERT INTO produkte( image )
> SELECT import.bildurl
> FROM import , produkte
> WHERE produkte.products_model = import.artikelnummer
>
> denn hier habe ich ja in FROM die produkte untergebracht.

da du products überhaupt nicht verwendest, kann ich mir da keinen
Zusammenhang vorstellen.

Grüße

Dirk

Re: Insert into Probleme

am 13.02.2006 16:10:40 von Sascha Klopp

Herby schrieb:
>> Das WHERE bezieht sich hier auf das SELECT und in dem FROM des SELECT
>> steht keine Tabelle produkte.
>
> Ok, dann ist klar warum der 1. Versuch nicht klappte aber immernoch unklar
> warum der 2. scheitert
>
> INSERT INTO produkte( image )
> SELECT import.bildurl
> FROM import , produkte
> WHERE produkte.products_model = import.artikelnummer
>
> denn hier habe ich ja in FROM die produkte untergebracht.
>

Willst du evtl. gar nicht INSERTen, ondern UPDATEn?

UPDATE produkte p
SET image=(SELECT bildurl
FROM import i
WHERE i.artikelnummer=p.products_model)

(ungetestet!)

HTH

skl