0

我需要向表中添加一些记录,但只有那些与某个链接表匹配的记录。三张表如下:

extension_prefs (extension_id, value, parameter)
extension (id, client_id)
client (id, parent_client_id)

这些将链接如下:

extension_prefs.extension_id = extension.id AND extension.client_id = client.id

extension_prefs我需要为属于特定客户端的每个扩展插入 4 条记录parent_client_id。我不知道实现这一点的语法,尽管我觉得它非常简单。

编辑:是的,我搞砸了,这些记录需要更新而不是插入。

非常感谢

乔治

4

1 回答 1

0

您可以为每个首选项调用以下查询,它将为所有必要的扩展保存。

更新:以下查询为首选项插入一个新行,或者如果它存在,则更新现有行。
这假定 extension_prefs 表对 extension_id 和参数列具有唯一约束。

INSERT INTO extension_prefs (extension_id, parameter, value)
  SELECT e.id, "key", "value"
   FROM extension e
   JOIN client c ON e.client_id = c.id
   WHERE c.parent_client_id = 123
ON DUPLICATE KEY
  UPDATE value = "value"
于 2012-07-18T12:33:31.160 回答