2016-11-20 75 views
0

我有一个表,看起来像这样: 用户(ID,用户名,电子邮件,密码)插入使用与多种选择/ AS

我想插入一个“关系”表: ( ID,userid1,userid2)

但是,这是行不通的:

INSERT INTO relationship 
WITH id1 AS (SELECT id FROM user WHERE USERNAME = "a"), 
id2 AS (SELECT id FROM user WHERE USERNAME = "b") 
SELECT id1.id, id2.id from id1, id2 

我敢肯定有另一种方式来做到这一点,但是这似乎是清白的,我想不通为什么它不加工。我得到的错误是:

您的SQL语法错误;检查对应于你的MySQL服务器版本使用附近的“ID1 AS

回答

0

假设relationship.id是一个自动编号列正确的语法手册,请尝试:

insert into relationship (userid1, userid2) 
select id1, id2 
from (
    (select id as id1 from user where username='a') as a, 
    (select id as id2 from user where username='b') as b 
    ); 
+0

仍然会收到同样的错误: ERROR 1064(42000):您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以便在第3行使用附近的'select id as id2 from user where username ='b')作为x'' – Ristoph

+0

我刚纠正了子查询的别名。 –

+0

非常感谢。 – Ristoph