0

情况如下:

  • 我有一个主管理员,其id, 在表中person478.
  • 这个管理员应该在表中处理合作伙伴partners
  • 有一个“加入”他们的表:person_partners

有时,有些人添加了新的合作伙伴,我想运行一个查询:

  • 任何一个:
    • 删除管理员和合作伙伴之间的所有链接,某种DELETE * FROM person_partners where id_person=478
    • 重新插入管理员和合作伙伴之间的所有链接(= 也将插入新的合作伙伴),某种INSERT INTO person_partners (id_person,id_partner) VALUES (478, SELECT id FROM partners)(但是这个查询给了我这个错误ERROR 1242 (21000): Subquery returns more than 1 row:)
  • 或者简单地插入所有尚未加入的合作person_partners伙伴id_person=478

任何的想法?

4

2 回答 2

1

就像 BugFinder 说的,“你似乎对这个问题有自己的答案”

要修复 ERROR 1242,您必须这样编写:

INSERT INTO person_partners (id_person,id_partner) 
SELECT '478', id FROM partners;

或者“简单地插入所有尚未在 person_partners 中的合作伙伴 id_person=478”,您可以

INSERT IGNORE INTO person_partners (id_person,id_partner) 
SELECT '478', id FROM partners;

在此处阅读更多相关信息。

于 2012-08-23T10:40:09.470 回答
0
INSERT INTO person_partners (id_person,id_partner) SELECT 478, ID FROM partners
ON DUPLICATE KEY UPDATE id_person=478;
于 2012-08-23T10:43:30.787 回答