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