[英]Using Join and Insert Statement in MySQL
我有這樣的插入語句
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()
);
我想通過將table workcontent與user_id
上的表用戶信息一起加入來插入新行來檢查用戶是否已被刪除,條件是where userinfo.delete_flag = 0
。
有什么辦法嗎?
您可以使用WHERE EXISTS。 試試以下
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_id
等於00005
且delete_flag
設置為0的行,則select將不返回任何行,而insert查詢將不會影響任何行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.