0

データベース内のページと関連するすべての行を複製しようとしています。

私が抱えている問題は、page_group_idが両方のテーブルの識別子であるためです。新しい「page_groups」レコードのそれぞれをループせずにこれを行う方法はありますか?

  • ページ(page_id、page_name など)
  • page_groups (page_group_id、page_id など)
  • page_group_items (page_group_id、item_id など)

更新

--
-- Table structure for table `pages`
--

CREATE TABLE IF NOT EXISTS `pages` (
  `page_id` int(11) NOT NULL AUTO_INCREMENT,
  `page_name` varchar(255) NOT NULL,
  PRIMARY KEY (`page_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `pages`
--

INSERT INTO `pages` (`page_id`, `page_name`) VALUES
(1, 'My Page'),
(2, 'My other page');

-- --------------------------------------------------------

--
-- Table structure for table `page_groups`
--

CREATE TABLE IF NOT EXISTS `page_groups` (
  `page_group_id` int(11) NOT NULL AUTO_INCREMENT,
  `page_group_name` varchar(255) NOT NULL,
  `page_id` int(11) NOT NULL,
  PRIMARY KEY (`page_group_id`),
  KEY `page_id` (`page_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `page_groups`
--

INSERT INTO `page_groups` (`page_group_id`, `page_group_name`, `page_id`) VALUES
(1, 'My Group', 1),
(2, 'My Group', 2);

-- --------------------------------------------------------

--
-- Table structure for table `page_group_items`
--

CREATE TABLE IF NOT EXISTS `page_group_items` (
  `page_group_id` int(11) NOT NULL,
  `item_id` int(11) NOT NULL,
  KEY `item_id` (`item_id`),
  KEY `page_group_id` (`page_group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `page_group_items`
--

INSERT INTO `page_group_items` (`page_group_id`, `item_id`) VALUES
(1, 1),
(1, 2),
(1, 3),
(2, 1),
(2, 2);
4

1 に答える 1