Php 需要在复制时使用新PK更新FK

Php 需要在复制时使用新PK更新FK,php,mysql,foreign-keys,primary-key,Php,Mysql,Foreign Keys,Primary Key,我有两张桌子——今晚我真的相信我有一个金发女郎的时刻 标题 副标题 我想做的是复制标题和副标题中的所有条目,其中TopicID=1到=2 我写过: INSERT INTO Headings (HeadingName, TopicID) SELECT HeadingName, 2 FROM Headings WHERE TopicID = 1 //(Duplicating Headings and assigning TopicID 2). 我被困在副标题上了;我想输入刚刚创建的新的Headi

我有两张桌子——今晚我真的相信我有一个金发女郎的时刻

标题 副标题 我想做的是复制标题和副标题中的所有条目,其中
TopicID
=1到=2

我写过:

INSERT INTO Headings (HeadingName, TopicID)
SELECT HeadingName, 2 FROM Headings WHERE TopicID = 1  //(Duplicating Headings and assigning TopicID 2).
我被困在
副标题上了
;我想输入刚刚创建的新的
HeadingID
,我不知道。我可以用相同的Insert/Select语句来处理其余字段,但我还是被难住了

有人能帮我举个例子或一些文档吗

简化数据如下所示:

HeadingID = 1
HeadingName = 'News'
TopicID = 1
HeadingID = 2
HeadingName = 'Sport'
TopicID = 1

SubHeadingID = 1
SubHeadingName = 'Local'
HeadingID = 1
SubHeadingID = 2
SubHeadingName = 'National'
HeadingID = 1
SubHeadingID = 3
SubHeadingName = 'International'
HeadingID = 1
SubHeadingID = 4
SubHeadingName = 'Baseball'
HeadingID = 2
SubHeadingID = 5
SubHeadingName = 'Cricket'
HeadingID = 2

以下查询将帮助您:)


@jetgrrrl请让我知道上面的答案是否有帮助。谢谢OMG,我会在我醒来时测试它:DHi OMG,你的建议不起作用,但是加入给了我另一个想法(插入内联选择以获得headingid),我可以从那里得到:)谢谢!
INSERT INTO Headings (HeadingName, TopicID)
SELECT HeadingName, 2 FROM Headings WHERE TopicID = 1  //(Duplicating Headings and assigning TopicID 2).
HeadingID = 1
HeadingName = 'News'
TopicID = 1
HeadingID = 2
HeadingName = 'Sport'
TopicID = 1

SubHeadingID = 1
SubHeadingName = 'Local'
HeadingID = 1
SubHeadingID = 2
SubHeadingName = 'National'
HeadingID = 1
SubHeadingID = 3
SubHeadingName = 'International'
HeadingID = 1
SubHeadingID = 4
SubHeadingName = 'Baseball'
HeadingID = 2
SubHeadingID = 5
SubHeadingName = 'Cricket'
HeadingID = 2
INSERT INTO SubHeadings (SubHeadingName, HeadingID) 
SELECT subhdng.SubHeadingName, hdng.HeadingID 
FROM Headings hdng
INNER JOIN SubHeadings subhdng ON hdng.HeadingID = subhdng.HeadingID 
WHERE hdng.TopicID = 2