[英]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.