数据库联表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
可以替换为你实际想要的表名。