我有两张表,其中包含一些我不需要的东西。一个有关于用户和另一个用户密码的信息。
我有一个新表,它将信息和密码存储在一起。
此外,用户信息表有单独的名字和姓氏字段,我需要将它们组合起来,将它们放在“名称”列中,并在它们之间添加一个空格。
我需要在不中断(修改)任何旧表的情况下执行此操作。
我还需要能够在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
答案 0 :(得分:3)
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
)
答案 1 :(得分:2)
SELECT ID, Password, Name, Email INTO NewTable
FROM (SELECT ID, Password
FROM oldTable1
FULL OUTER JOIN oldTable2
ON oldTable1.ID=oldTable2.ID)
试试......我不是天才,但应该有效:)
答案 2 :(得分:0)
在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
答案 3 :(得分:0)
您确定需要一个新表来连接两个表吗?有没有听过意见?你可以用它。
CREATE VIEW myView AS
SELECT oldtable1.id, oldtable1.pass, oldtable2.fname, oldtable2.email
FROM oldtable1 JOIN oldtable2 ON oldtable1.id = oldtable2.id