我有非常基本的mysql知识(能够更新和连接表)并且正在使用phpMYAdmin但是我现在尝试的东西超出了我的水平。我已经查看了许多其他问题和答案,但无法为我找到解决方案。我相信有一个非常简单的答案。这就是我想要做的......
usermeta t1 looks like this:
user_id | meta_key | meta_value|
---------------------------------------
1 | mk1 | value1 |
2 | mk2 | value2 |
3 | desc | name |
4 | mk4 | value4 |
5 | desc | name |
6 | mk6 | value6 |
7 | mk7 | value7 |
8 | desc | name |
9 | mk9 | value9 |
10 | desc | name |
userdata t2 looks like this:
user_id | desc |
---------------------
1 | bob |
2 | joe |
3 | nancy |
4 | jane |
5 | lee |
6 | jeff |
7 | jill |
8 | scott |
9 | len |
10 | carey |
我想更新所有单元格中的t1 meta_value列,其值为“name”,其中meta_key为“desc”,其中包含t2.desc列中的数据,并在t1.user_id = t2.user_id处加入,但我不知道怎么做!有人有一些mysql建议吗?
答案 0 :(得分:1)
试试这个:
UPDATE usermeta t1
INNER JOIN userdata t2 ON t1.user_id = t2.user_id
SET t1.meta_value = t2.desc
WHERE t1.meta_key = 'desc' AND t1.meta_value = 'name'
您INNER JOIN
上的user_id
两个表,并在您要更新的字段上添加WHERE
子句。