2016-05-06 16 views
0

Ich möchte aus der folgenden Erklärung als neue Zeilen in einer vorhandenen Tabelle resultierenden Daten einzufügen:Grabbing Daten aus mehreren Tabellen und Einfügen in neue Tabelle

SELECT a.post_date, b.vendor_name, c.lastName, d.firstName, null as taxiGroup 
FROM (select ID,post_date from wp_posts where post_type = 'shop_order') as a, 
(SELECT order_id,vendor_name FROM wp_wcpv_commissions) as b, 
(SELECT post_id,meta_value as lastName FROM wp_postmeta where meta_key ='_billing_last_name') as c, 
(SELECT post_id,meta_value as firstName FROM wp_postmeta WHERE meta_key ='_billing_first_name') as d 
WHERE a.ID = b.order_id and b.order_id=c.post_id and c.post_id = d.post_id; 

Aber, wenn ich das Formular verwenden INSERT INTO taxipassengers() VALUES(<the query above>); ich You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6, was auch immer das bedeuten soll.

Vorschläge?

bearbeiten: Auf dem ersten Blick, das ist ein doppeltes Anführungszeichen, aber nachdem ich/es hier eingefügt Kopie, ich sehe, dass es zwei aufeinanderfolgende einfache Anführungszeichen ist, die aber zumindest macht, da ich don mehr Sinn immer noch neugierig ist In meiner Abfrage sind keine Anführungszeichen vorhanden.

+0

nicht, was die genaue Fehler ist. Bitte hinzufügen – PeaceIsPearl

+0

Kein Problem, obwohl der erste Teil ziemlich Standard ist. – Tim

+0

Tim, überprüfen Sie bitte meine Antwort unten. Ich hoffe, das hilft! – PeaceIsPearl

Antwort

1

Die richtige Syntax lautet:

insert into taxipassengers 
select ... 

So gibt is no values() clause.

+0

Vielen Dank für Ihre Eingabe! Das wäre einfach gewesen, aber es gibt mir die gleiche Fehlermeldung: 'Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, um die richtige Syntax in der Nähe von '' in Zeile 6 zu verwenden. – Tim

+0

Bitte kopieren Sie die genaue SQL-Abfrage, die Sie in der Frage versucht haben, und behalten Sie dabei die Formatierung Ihres Codes bei. Es ist schwer zu reparieren, ich sehe es nicht einmal. – Shadow

+0

Ich habe versucht, 'taxipassangers (SELECT a.post_date, b.vendor_name, c.lastName, d.firstName, null als taxiGroup FROM (wählen ID, post_date von wp_posts, wo post_type = 'shop_order') a, (SELECT order_id , VENDOR_NAME FROM wp_wcpv_commissions) b, (SELECT post_id, meta_value als nachName FROM wp_postmeta wo meta_key = '_ billing_last_name') c, (SELECT post_id, meta_value als vorName FROM wp_postmeta WHERE meta_key = '_ billing_first_name') d WHERE a.ID = b.order_id und b.order_id = c.post_id und c.post_id = d.post_id;); ' – Tim

0

die Sie interessieren, für Aliasing wir brauchen „wie“

SELECT a.post_date, b.vendor_name, c.lastName, d.firstName, null as taxiGroup 
    FROM (select ID,post_date from wp_posts where post_type = 'shop_order') a, 
    (SELECT order_id,vendor_name FROM wp_wcpv_commissions) b, 
    (SELECT post_id,meta_value as lastName FROM wp_postmeta where meta_key ='_billing_last_name') c, 
    (SELECT post_id,meta_value as firstName FROM wp_postmeta WHERE meta_key ='_billing_first_name') d 
    WHERE a.ID = b.order_id and b.order_id=c.post_id and c.post_id = d.post_id; 
+0

Vielen Dank für Ihre Eingabe! Es ist sehr geschätzt. Während diese Anweisung jedoch für sich arbeitet (wie die ursprünglich innere Abfrage), bekomme ich die gleiche Fehlermeldung, wenn ich versuche, die Werte aus dieser Abfrage mit 'INSERT INTO taxipassangers(); in eine Tabelle einzufügen. – Tim

+0

Versuchen Sie dies, beachten Sie die doppelten Klammern INSERT INTO taxipassangers() VALUES (()); – PeaceIsPearl

+0

Vielen Dank für Ihre Hilfe! Es war eigentlich die andere Richtung - weniger Klammern und weniger Semikolons. Die letzte Lösung ist in meinem letzten Kommentar zu der obigen Antwort. – Tim

Verwandte Themen