我有两张表,为方便起见,请考虑以下示例。
- 联系人(有姓名和电子邮件)
- 消息(消息,但也有名称和电子邮件 w/c 需要同步到联系人表)
现在请,对于那些渴望说“使用关系方法”或外键等的人。我知道,但这种情况不同。我需要在消息表本身上拥有消息名称和电子邮件的“副本”,并且只需要不时同步它。
根据同步要求,我需要将消息上的名称与联系人表上的最新名称同步。
对于联系人表中的所有行,我基本上在循环中都有以下 UPDATE SQL
UPDATE messages SET name=(
SELECT name FROM contacts WHERE email = '$cur_email')
WHERE email='$cur_email'
以上循环遍历所有联系人,并触发了与我一样多的联系人。
在不使用内部的情况下,我也有几个循环的想法,SELECT
但我只是认为上面的方法会更有效(是吗?),但我想知道是否有更有效的 SQL 方式?喜欢:
UPDATE messages SET name=(
SELECT name FROM contacts WHERE email = '$cur_email')
WHERE messages.email=contacts.email
看起来像加入的东西?