數據庫聯表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
?可以替換為你實際想要的表名。