我有一个包含2个表的mysql数据库:users
和logins
。 users
表包含用户信息,logins
表包含用户可以登录的联系人登录ID。这些登录ID是电子邮件或电话号码。这些登录ID充当公共ID。结果中永远不会发出userId
。
现在我正在尝试创建一个存储过程,其中包含所有用户的列表(请参阅tempTable
)及其电话号码和电子邮件。
到目前为止,我已经写了以下程序:
CREATE TEMPORARY TABLE tempTable (
public_id varchar(255) DEFAULT '',
info1 varchar(255) DEFAULT '',
info2 varchar(255) DEFAULT '',
info3 varchar(255) DEFAULT '',
phone varchar(255) DEFAULT '',
email varchar(255) DEFAULT ''
);
insert into tempTable(public_id, info1, info2, info3 ) (select userid, info1, info2, info3 from users);
Update tempTable
Inner Join logins
On tempTable.public_id = logins.userid
Set
tempTable.public_id = logins.login_id;
这可以将pulic_id
的{{1}}更改为tempTable
表的login_id
。但是现在,我如何将电话和电子邮件放入logins
?
答案 0 :(得分:0)
代码如下:
CREATE TEMPORARY TABLE tempTable ( public_id varchar(255) DEFAULT '', info1 varchar(255) DEFAULT '', info2 varchar(255) DEFAULT '', info3 varchar(255) DEFAULT '', phone varchar(255) DEFAULT '', email varchar(255) DEFAULT '' ); insert into tempTable(public_id, info1, info2, info3 ) (select userid, info1, info2, info3 from users); Update tempTable Inner Join logins On tempTable.public_id = logins.userid Set tempTable.public_id = logins.login_id, tempTable.email = logins.login_id Where logins.login_type = 'email'; Update tempTable Inner Join logins On tempTable.public_id = logins.userid Set tempTable.public_id = logins.login_id, tempTable.mobile = logins.login_id Where logins.login_type = 'mobile';