In MySQL möchte ich eine neue Tabelle mit allen Informationen in dieser Abfrage erstellen:
select * into consultaa2 from SELECT
CONCAT( "UPDATE customers SET
customers_default_address_id= ",
(SELECT a.address_book_id FROM
address_book a where
c.customers_id=a.customers_id order by
address_book_id desc limit 1), "
WHERE customers_id = ", customers_id,
";") AS sql_statement FROM customers c
where c.customers_id > 3894;
Die Abfrage ist zu lang für den Browser, um den concat anzuzeigen, und ich brauche dies, um diese Aktualisierungen vorzunehmen.
Antworten:
14 für die Antwort № 1Das Einfügen in eine Tabelle mit Informationen aus einer Abfrage hat das Format
INSERT INTO <TABLE-1>
SELECT * FROM <TABLE-2>
In deinem Fall wäre es das
insert into consultaa2
SELECT CONCAT( "UPDATE customers SET customers_default_address_id= ",
(SELECT a.address_book_id FROM address_book a where c.customers_id=a.customers_id order by address_book_id desc limit 1), " WHERE customers_id = ", customers_id, ";") AS sql_statement FROM customers c where c.customers_id > 3894;
Stellen Sie nur sicher, dass die Spalten in der Tabelle, in die Sie einfügen, und die von der Auswahlabfrage zurückgegebenen Spalten übereinstimmen.
97 für die Antwort № 2
Du kannst es so machen:
CREATE TABLE tablename SELECT * FROM othertable;
tablename
ist der Name der neuen Tabelle, die Sie erstellen möchten, SELECT * FROM othertable
ist die Abfrage, die die Daten zurückgibt, aus denen die Tabelle erstellt werden soll.
8 für die Antwort № 3
mysql erstellt neue Tabelle
Beispiel aus der mysql-Befehlszeile.
mysql> create table foo(id int, vorta text);
Query OK, 0 rows affected (0.02 sec)
Zeilen einfügen
mysql> insert into foo values(1, "for the hoarde");
Query OK, 1 row affected (0.00 sec)
schau, was da drin ist
mysql> select * from foo;
+------+----------------+
| id | vorta |
+------+----------------+
| 1 | for the horde |
+------+----------------+
1 row in set (0.00 sec)
Erstellen Sie eine neue Tabelle mit Informationen aus einer Abfrage
mysql> create table foo2 select * from foo;
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
Überprüfen Sie, ob die Daten verschoben wurden
mysql> select * from foo2;
+------+----------------+
| id | vorta |
+------+----------------+
| 1 | for the horde |
+------+----------------+
1 row in set (0.00 sec)