Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中使用Join和Insert语句_Mysql - Fatal编程技术网

在MySQL中使用Join和Insert语句

在MySQL中使用Join和Insert语句,mysql,Mysql,我有一个这样的insert语句 INSERT INTO T_WorkContents ( user_id, working_date, working_start_time, working_end_time, break_time, holiday_mark, overtime_hours, overtime_reason, work_detail,

我有一个这样的insert语句

INSERT INTO T_WorkContents ( user_id, working_date, working_start_time,  
                             working_end_time, break_time, holiday_mark,
                             overtime_hours, overtime_reason, work_detail,
                             remarks, regist_user, regist_date,
                             update_user, update_date )  

VALUES ( '00005', '2015-02-05', '8:0',
         '17:0', '0:0', '0',
         '0:0', NULL, NULL,
          NULL, '00005', current_timestamp(),
         '00005', current_timestamp()
);
我想通过在
user\u id
上将表workcontent与表用户信息联接,检查插入新行时用户是否已被删除,条件是
其中userinfo.delete\u flag=0


有什么办法吗?

您可以在存在的地方使用。试试下面

INSERT INTO funds (field1, field2)
values (x, xx)
WHERE EXISTS (
   SELECT * 
   FROM table
   WHERE userid = your_user_id
);

我不确定我是否理解你的问题。但是,如果您只希望在相应的用户存在并且在其他表中标记为未删除时执行插入,则应该可以:

INSERT INTO T_WorkContents ( user_id, working_date, working_start_time,  
                             working_end_time, break_time, holiday_mark,
                             overtime_hours, overtime_reason, work_detail,
                             remarks, regist_user, regist_date,
                             update_user, update_date )  

SELECT '00005', '2015-02-05', '8:0',
       '17:0', '0:0', '0',
       '0:0', NULL, NULL,
        NULL, '00005', current_timestamp(),
       '00005', current_timestamp()
FROM userinfo ui 
WHERE ui.user_id = '00005' && ui.delete_flag = 0

如果
userinfo
不包含
user\u id
等于
00005
delete\u标志设置为0的行,则select将不返回任何行,insert查询将不影响任何行。

我不确定是否理解该问题。如果用户被删除,则您不想执行插入查询?您的意思是,如果用户已经存在,您想阻止插入吗?@Cyclone,是的,与您的想法非常相似,只是用户仍然能够插入查询,但影响的行数为0。