带有SELECT的MySQL UPDATE

时间:2012-03-28 17:49:58

标签: mysql select join

我有四个不同的表,简单描述如下:

用户
USER_ID
USER_NAME

USER_TYPE
user_type_id
USER_TYPE

数据
USER_ID
user_type_id

import_user_type
键入
用户名

我正在编写一个存储过程来用统计信息填充数据表。它是用户表的siple,我执行以下操作:

“数据”表中的行存在于将“用户”数据添加到其中之后。

INSERT INTO data (user_id) 
SELECT user.user_id
FROM user
INNER JOIN import_data
ON user_id
WHERE import_data.station_id = user.user_name;

当我想将用户类型添加到数据表时,遇到一个问题,即只需要为更新指定一行并选择:

UPDATE data SET user_type_id = (
SELECT user_type.user_type_id
FROM user_type
INNER JOIN import_user_type
ON user_type_id
WHERE import_user_type.acces = user_type.user_type
LIMIT 1
);

此UPDATE查询的目标是添加每个用户的user_type,但它们位于三个不同的表中。

当类型和用户位于2个不同的表中时,如何使用每个“user_id”的“user_type_id”更新“data”表的每一行?

0 个答案:

没有答案