两个表 - 如果年龄小于,那么就做

时间:2016-05-06 04:10:22

标签: mysql

我有两张桌子。一个名为empdata,另一个名为empinfo。

empdata(原始员工数据) - 年龄栏有员工年龄。

empinfo(dev info side) - isUnderage是BIT 0/1 true / false列。

我试图创建以下if语句来更新整个表:IF员工不满17岁那么1 ELSE 0。

以下是我到目前为止使用MySql的错误:

empdata(原始员工数据) - 在名为" FileNumber"

的列下有员工ID

empinfo(开发信息方) - 在名为" empid"

的列下具有相同的员工ID
UPDATE isUnderage
        isUnderage = CASE empdata.Age
         WHEN empdata.Age > 17 THEN 1
          ELSE 0
        END,
FROM empinfo

2 个答案:

答案 0 :(得分:1)

更新查询将如下所示:

UPDATE empinfo t1
INNER JOIN empdata t2
ON t1.empid = t2.FileNumber 
SET t1.isUnderage = IF(t2.Age > 17, 1, 0); 

答案 1 :(得分:0)

UPDATEJOINCASE表达一起使用。

<强>查询

UPDATE empinfo t1
JOIN empdata t2
ON t1.empid = t2.FileNumber
SET t1.isUnderage = (
     CASE WHEN t2.Age < 17 THEN 0 ELSE 1 END
);