簡體   English   中英

將(兩個表的聯接)插入另一個表

[英]Insert (join of two tables) into a different table

我有兩個桌子,上面放着一堆我不需要的東西。 一個擁有有關用戶的信息,另一個擁有其密碼。

我有一個新表,它將他們的信息和密碼一起存儲。

此外,用戶信息表具有用於名字和姓氏的單獨字段,我需要將它們組合以將它們放在“名稱”列中,並在它們之間添加一個空格。

我需要做到這一點而又不破壞(修改)任何一個舊表。

我還需要能夠向id列添加一個整數值。

我認為基本語法看起來像這樣,但是不知道過去該怎么做

INSERT INTO newtable (id, name, email, password) VALUES ((JOIN statement?), (JOIN statement?), (JOIN statement?), (JOIN statement?))

如何使用腳本完成此操作?

舊表1( oldtable1 ):

User ID (id)
Password value (pass)

舊表2( oldtable2 ):

User ID (id)
First name (fname)
Last name (lname)
Email (email)

新表( newtable ):

id
name
email
password
SELECT id, name, email, password INTO NewTable 
FROM 
(
  SELECT o1.id, CONCAT(o2.fname, ' ', o2.lname), o2.email,  o1.Password
  FROM oldTable1 AS o1
    JOIN oldTable2 AS o2
    ON o1.id = o2.id
)
SELECT ID, Password, Name, Email INTO NewTable 
FROM (SELECT ID, Password
FROM oldTable1
FULL OUTER JOIN oldTable2
ON oldTable1.ID=oldTable2.ID)

試試吧...我不是天才,但它應該可以工作:)

在SQL Server中,如果NewTable還不存在,您可以通過這種方式進行操作。

SELECT IDENTITY(INT,1,1) id, name,email,password
INTO newtable
FROM oldtable1 ot1
     join oldtable2 ot2 on ot1.UserID=ot2.UserID

如果它已經存在

insert into newtable (name,email,password)
select name,email,password
FROM oldtable1 ot1
         join oldtable2 ot2 on ot1.UserID=ot2.UserID

您確定需要一個新表來連接兩個表嗎? 聽說過意見嗎? 您可以使用它。

CREATE VIEW myView AS
SELECT oldtable1.id, oldtable1.pass, oldtable2.fname, oldtable2.email
FROM oldtable1 JOIN oldtable2 ON oldtable1.id = oldtable2.id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM