0

我有一个记录订阅者邮件列表订阅的表。

CREATE TABLE IF NOT EXISTS `subscriber_list` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `subscriber_id` int(11) NOT NULL,
  `account_id` int(11) NOT NULL,
  `list_id` int(11) NOT NULL,
  `date_entered_gmt` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `subscriber_id_account_id_list_id` (`subscriber_id`,`account_id`,`list_id`),
  KEY `list_id_account_id` (`list_id`,`account_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1454722 ;

在使用该表的应用程序中,具有允许邮件列表中的所有订阅者订阅另一个订阅者的功能。

我打算使用子查询来获取邮件列表的所有当前订阅者,这些订阅者将订阅新的选定邮件列表,以及如何使用这个订阅者列表为每个定义新订阅但邮件list 最多可以有 250,000 个订阅者,所以我不知道应该怎么做。

干杯

马克

4

1 回答 1

2

你可以使用 INSERT ... SELECT 像这样的东西 -

INSERT INTO subscriber_list (subscriber_id, account_id, list_id, date_entered_gmt)
SELECT subscriber_id, account_id, 4, NOW()
FROM subscriber_list
WHERE list_id = 3

为了回应您的评论,我已更新此查询中的值。这会 -

SELECT subscriber_id, account_id, 4, NOW()
FROM subscriber_list
WHERE list_id = 3

并将它们直接插入到订阅者列表中。因此,如果 SELECT 中的值是您要插入的值,这将适合您的方案。

于 2012-04-14T21:51:32.133 回答