繁体   English   中英

SQL Insert Into with Inner Join

[英]SQL Insert Into with Inner Join

我想让我的插入查询与用户表有一个内部连接。

表的例子是这样的:

用户:

id | fullName | preferredName | email              | mobile   | password
1  | Pan Lim  |  Lim          | limpan45@gmail.com | 64557812 | passone
2  | Gong My  |  Gong         | gong45@gmail.com   | 61345671 | passtwo

订单:

id | userid(Foreign key of "id" from Users | timestamp
1  |               1                       | 2016-06-10 11:45:31

我试图插入与只知道用户表中的用户 ID 相关的订单。 它显示如下:

订单:

id | userid(Foreign key of "id" from Users | timestamp
1  |               1                       | 2016-06-10 11:45:31
2  |               2                       | 2016-08-14 12:45:31

但是当我测试我的 SQL 查询时,这个查询有错误。

INSERT INTO Orders (id, userid, timestamp) 
SELECT Orders.id, Orders.userid, Orders.timestamp FROM Users INNER JOIN Orders ON  Orders.id = Users.id

如果您的 id 在 Orders 表中不是自动递增的

INSERT INTO orders ( id,userid, timestamp) 
SELECT o.userid , o.timestamp FROM users u INNER JOIN orders o ON  o.userid = u.id

如果您的 id 在 Orders 表中是自动递增的

INSERT INTO orders ( userid, timestamp) 
SELECT o.userid , o.timestamp FROM users u INNER JOIN orders o ON  o.userid = u.id

如果 Orders.Id 是唯一的,您的 SQL 查询将失败。 您正在尝试将一个或多个现有记录插入到 Orders 表中,因此它将是 Id 的重复项。我不确定您要实现什么,但这应该有效:

INSERT INTO Orders ( userid, timestamp) 
SELECT Orders.userid, Orders.timestamp FROM Users INNER JOIN Orders ON  Orders.id = Users.id

编辑:Orders.Id 应该是订单中记录的唯一 ID,而 Users.Id 应该是用户表中记录的唯一 ID? 在这种情况下,你不能加入这两个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM