MySQL: Creating a new table with information from a query

后端 未结 3 1866
情书的邮戳
情书的邮戳 2021-02-03 18:16

In MySQL, I would like to create a new table with all the information in this query:

select * into consultaa2 from SELECT
 CONCAT(    \'UPDATE customers SET
 cus         


        
相关标签:
3条回答
  • 2021-02-03 18:51

    mysql create new table

    Example from mysql commandline.

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

    Insert rows

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

    look what's in there

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

    Create a new table with information from a query

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

    Check if the data moved

    mysql> select * from foo2;
    +------+----------------+
    | id   | vorta          |
    +------+----------------+
    |    1 | for the horde  |
    +------+----------------+
    1 row in set (0.00 sec)
    
    0 讨论(0)
  • 2021-02-03 19:02

    *Note that this method does not create a table (as per OP title). To do that see this answer.*


    Inserting into a table with information from a query is of the format

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

    In your case, it would be

    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;
    

    Just make sure the columns in the table you are inserting into and the columns returned from the select query match.

    0 讨论(0)
  • 2021-02-03 19:10

    You can do it like this:

    CREATE TABLE tablename SELECT * FROM othertable;
    

    tablename is the name of the new table you want to create, SELECT * FROM othertable is the query that returns the data the table should be created from.

    0 讨论(0)
提交回复
热议问题