2016-07-19 5 views
-1

i aus mehreren Tabelle auswählen möchten und auf eine Tabelle schreiben:aus mehreren Tabelle auswählen und auf einem Tisch w3schools schreiben

INSERT INTO interest_area (category_id, user_id) 
     SELECT category_id FROM category 
     WHERE category_name = 'HTML' 
     UNION ALL 
     SELECT user_id FROM users 
     WHERE first_name = 'Memar'; 

konnte aber nicht schreiben.

+0

die Tabelle Kategorie und Benutzer von einigen Spalten beziehen? – scaisEdge

+0

UNION ist nicht der richtige Weg zu gehen, weil dies Reihen von zwei Tabellen zusammenfügen wird. Möglicherweise möchten Sie einen JOIN der beiden Tabellen verwenden, da Sie neue Zeilen aus Spalten erstellen möchten. Sie benötigen jedoch eine Spalte, über die Sie die Verbindung zwischen Kategorie und Benutzer erhalten. – Fuzzzzel

+0

@Fuzzzzel Es sieht so aus, als ob diese Tabelle die Verbindung zwischen der Kategorie und dem Benutzer herstellt. Die obige Abfrage soll sagen, dass Benutzer Memar an Kategorie HTML interessiert ist. Es ist ein Cross-Join, also wird keine Beziehung benötigt. – Barmar

Antwort

1

Ihre Frage etwas ändern wie

INSERT INTO interest_area (category_id, user_id) 
    SELECT category_id,user_id FROM category c,users u 
    WHERE c.category_name = 'HTML' and u.first_name = 'Memar'; 
+1

Bitte verwenden Sie ANSI JOIN-Syntax in Antworten. Wir mögen es nicht, veraltete Syntax zu fördern. – Barmar

Verwandte Themen