Mysql查找,在两个表之间更新

Mysql查找,在两个表之间更新,mysql,Mysql,很难获得正确的mysql查找,然后更新这些记录。我对两张分开的桌子的概念有困难。基本上,我可以通过以下方法在一个表中成功找到记录: SELECT email,id FROM `phplist_user_user` WHERE `email` LIKE '%gmail%' LIMIT 0 , 30 然后分别: SELECT userid, value FROM `phplist_user_user_attribute` 现在我搞不懂的是如何将第一次查询中找到的所

很难获得正确的mysql查找,然后更新这些记录。我对两张分开的桌子的概念有困难。基本上,我可以通过以下方法在一个表中成功找到记录:

  SELECT email,id  
  FROM  `phplist_user_user` 
  WHERE  `email` LIKE  '%gmail%'
  LIMIT 0 , 30
然后分别:

  SELECT userid, value FROM `phplist_user_user_attribute`

现在我搞不懂的是如何将第一次查询中找到的所有记录的“phplist\u user\u user\u attribute”中的值更新到“gmail.com”。

好的,显然,您无法直接更新
phplist\u user\u attribute

UPDATE phplist_user_user u
JOIN phplist_user_user_attribute a ON u.id = a.userid
SET a.value = 'gmail.com'
WHERE u.email LIKE '%gmail%'
您可以使用嵌套查询。。即 差不多 //这只是一种方法

Update phplist_user_user_attribute
SET your_value = 'foo'
where your_value IN (SELECT your_value  
                     FROM  `phplist_user_user` 
                     WHERE  `email` LIKE  '%gmail%'
                     LIMIT 0 , 30);

这是你想加入的关键吗?phplist_user_user.id=phplist_user_user_attribute.user_id这两个表之间是否存在任何关系
phplist_user_attribute
phplist_user_user
?谢谢!如果我没有收到来自MySQL的消息,说“IN”功能在我的MySQL版本中不起作用,那么这就行了。mysql-V mysql版本14.14发行版5.1.65,用于未知的linux gnu(x86_64),使用readline 5.1谢谢!这工作做得很好!同时我也学到了一些东西。