我有两张桌子。
基本上我想在表格中插入id
和string
但是,id
是另一个表的外键,其中customerId
是主键
此外,我的父表格有name
我拥有的是name
和我从网络获取的string
。但是,由于我没有在父表格中与id
名称匹配的customerid
,因此我不知道如何插入它。
INSERT INTO `PostDb`(`Offer`)
VALUES ("String") AND PostDb.id
WHERE CustomerDb.id = PostDb.id AND CustomerDb.name = "MyNameThatIHave"
虽然会有所作为。是我做了以下几点:
SELECT PostDb.id
FROM `PostDb` JOIN CustomerDb
WHERE `CustomerId` = CustomerDb.id AND CustomerDb.name = "MyNameThatIHave"
然后使用我在这样的新插入命令中获得的id:
INSERT INTO `PostDb`(`CustomerId`, `Offer`)
VALUES ("THE ID I GOT BEFORE","STRING")
基本上我想在一个查询中实现,两个在陈述的查询之前做了什么
答案 0 :(得分:0)
您是否尝试过LAST_INSERT_ID()
功能,该功能可为您提供最后一次插入的ID
PK,前提是ID
为auto_increment
列。
一旦你得到它,你就可以在你的FK列的子表中插入其余的属性。
在这种情况下,使用像
这样的INSERT INTO .. SELECT FROM
构造
INSERT INTO `PostDb`(`CustomerId`, `Offer`)
SELECT PostDb.`CustomerId`, 'Some Value'
FROM `PostDb` JOIN CustomerDb
ON `PostDb`.`CustomerId` = CustomerDb.id
WHERE CustomerDb.name = "MyNameThatIHave";