MySQL & PHP Über JOINs ein Eintrag mit Abfrage machen

zer0

Erfahrenes Mitglied
Hallo,

ich suche eine möglichkeit wie ich in INSERT Statement mit einem SELECT verknüpfen kann. Denke das sowas mit JOINs geht.
Mein Problem:
Ich habe eine Tabelle Artikel und Kategorie. In der Tabelle Artikel steht die KategorieID und der Name der Kategorie und natürlich auch Text etc. Ich übergeb beim Artikel erstellen nur die KategorieID, es soll also mittels der ID der Kategoriename aus der Tabelle Kategorie geholt werden und in Artikel eingefügt werden.

Mein SQL Statement sieht so aus:

SQL:
INSERT INTO article (title, date, categoryID, category, allowcomments, userID, preview, text) VALUES (:title, :date, :categoryID, :category, :allowcomments, :userID, :preview, :text)

Es soll nun sozusagen eine Abfrage mit eingebaut werden das den Kategorienamen 'category' ermittelt anhand der KategorieID 'categoryID' aus der Tabelle 'category'.

Könnte mir vllt jemand ein Statement mal zeigen? :)
 
Hi

das geht ohne Joins wenn ich dich richtig verstehe:
SQL:
INSERT INTO table1 (field1,field2) SELECT field1, field2 FROM table2
 
Zuletzt bearbeitet von einem Moderator:
Hi

das geht ohne Joins wenn ich dich richtig verstehe:
SQL:
INSERT INTO table1 (field1,field2) SELECT field1, field2 FROM table2

Hey!

Diese Art kannte ich garnicht :P

Habs mal versucht mir mein Query zusammen zubauen, aber klappen tuts noch nicht.

Kann hier mal jemand drüber schauen :)

SQL:
INSERT INTO article (title, date, categoryID, category, allowcomments, userID, preview, text) SELECT category.category FROM category WHERE category.ID = :categoryID VALUES(:title, :date, :categoryID, category.category :allowcomments, :userID, :preview, :text)
 
Zuletzt bearbeitet von einem Moderator:
bei INSERT by SELECT gibts keine VALUES

SQL:
INSERT INTO article (title, date, categoryID, category, allowcomments, userID, preview, text) 
SELECT :title, :date, :categoryID, category.category :allowcomments, :userID, :preview, :text FROM category WHERE category.ID = :categoryID

INSERT spalten und SELECT spalten müssen sich decken,.
 
Zurück