/ / MySQL: Створення нової таблиці з інформацією із запиту - mysql, sql, вставка, sql-оновлення

MySQL: Створення нової таблиці з інформацією з запиту - mysql, sql, insert, sql-update

У MySQL я хотів би створити нову таблицю з усією інформацією в цьому запиті:

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;

Запит занадто довгий, щоб веб-переглядач показував стислість, і мені це потрібно для оновлення.

Відповіді:

14 за відповідь № 1

Вставлення в таблицю з інформацією запиту має такий формат

INSERT INTO <TABLE-1>
SELECT * FROM <TABLE-2>

У вашому випадку це було б

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;

Просто переконайтеся, що стовпці таблиці, яку ви вставляєте, та стовпці, що повертаються з відповідності запиту вибору.


97 за відповідь № 2

Ви можете зробити це так:

CREATE TABLE tablename SELECT * FROM othertable;

tablename - це назва нової таблиці, яку ви хочете створити, SELECT * FROM othertable це запит, який повертає дані, з яких слід створити таблицю.


8 за відповідь № 3

створення нової таблиці

Приклад з командного рядка mysql.

mysql> create table foo(id int, vorta text);
Query OK, 0 rows affected (0.02 sec)

Вставте рядки

mysql> insert into foo values(1, "for the hoarde");
Query OK, 1 row affected (0.00 sec)

подивись, що там

mysql> select * from foo;
+------+----------------+
| id   | vorta          |
+------+----------------+
|    1 | for the horde  |
+------+----------------+
1 row in set (0.00 sec)

Створіть нову таблицю з інформацією із запиту

mysql> create table foo2 select * from foo;
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

Перевірте, чи перемістилися дані

mysql> select * from foo2;
+------+----------------+
| id   | vorta          |
+------+----------------+
|    1 | for the horde  |
+------+----------------+
1 row in set (0.00 sec)