数据库联表Sql语句建一个新表(MySQL,Postgresql,SQL server)

发布于:2025-03-25 ⋅ 阅读:(36) ⋅ 点赞:(0)

数据库联表Sql语句建一个新表(MySQL,Postgresql,SQL server)

如果你想基于 SELECT USERS.ID,USERS.NAME,USERS.EMAIL,USERS.ID_CARD,USERS.V_CARD,USERS.ADDRESS,v_card.type,v_card.amount FROM USERS JOIN v_card on USERS.V_CARD=v_card.v_card 这个查询结果创建一个新表,可以使用不同数据库系统提供的 CREATE TABLE AS 或者 SELECT ... INTO 语句。下面为你分别介绍在常见数据库系统中的实现方法。

MySQL

在 MySQL 中,你可以使用 CREATE TABLE ... AS 语句来根据查询结果创建新表,示例如下:

sql

CREATE TABLE new_table AS
SELECT USERS.ID,
       USERS.NAME,
       USERS.EMAIL,
       USERS.ID_CARD,
       USERS.V_CARD,
       USERS.ADDRESS,
       v_card.type,
       v_card.amount
FROM USERS
JOIN v_card ON USERS.V_CARD = v_card.v_card;

上述代码中,new_table 是你要创建的新表的名称,CREATE TABLE ... AS 会将查询结果的列结构和数据复制到新表中。

PostgreSQL

PostgreSQL 同样支持 CREATE TABLE ... AS 语法,示例代码如下:

sql

CREATE TABLE new_table AS
SELECT USERS.ID,
       USERS.NAME,
       USERS.EMAIL,
       USERS.ID_CARD,
       USERS.V_CARD,
       USERS.ADDRESS,
       v_card.type,
       v_card.amount
FROM USERS
JOIN v_card ON USERS.V_CARD = v_card.v_card;

这里的 new_table 是新表的名称,该语句会按照查询结果生成新表。

SQL Server

在 SQL Server 中,可以使用 SELECT ... INTO 语句来创建新表,示例如下:

sql

SELECT USERS.ID,
       USERS.NAME,
       USERS.EMAIL,
       USERS.ID_CARD,
       USERS.V_CARD,
       USERS.ADDRESS,
       v_card.type,
       v_card.amount
INTO new_table
FROM USERS
JOIN v_card ON USERS.V_CARD = v_card.v_card;

此代码将查询结果插入到新创建的 new_table 中。

注意事项

  • 新表的列名和数据类型会根据查询结果自动推断生成。
  • 不同数据库系统对于表名、列名等的命名规则可能存在差异,要遵循对应数据库的规则。
  • 上述代码中的 new_table 可以替换为你实际想要的表名。