这是我的疑问:
SELECT vehicle,
CASE
WHEN vehicle IS NOT NULL
THEN (INSERT INTO tbl_vehicle_on_user (vehicle, userid) values
(SELECT `vehicle` FROM `tbl_missions` WHERE `id` = 4 ), (SELECT `id` FROM `tbl_users` WHERE `id` = 12))
FROM tbl_missions WHERE id = 4;
当id 4上的车辆不为空时,我需要向tbl_vehicle_on_user插入一行。 当我执行此查询时,我从mysql workbench收到此错误,
01:24:49选择车辆,当车辆不是空时(输入到tbl_vehicle_on_user(车辆,用户ID))值(SELECT vehicle
FROM tbl_missions
WHERE id
= 4) ,(SELECT id
FROM tbl_users
WHERE id
= 12))FROM tbl_missions WHERE id = 4错误代码:1064。您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'INTO tbl_vehicle_on_user(vehicle,userid)值附近使用正确的语法(SELECT vehicle
FROM`tbl_mi'在第4行0.000秒
当我将鼠标悬停在'INTO'上时,我得到一条红线,它表示'语法错误,意外INTO,期待('。
我不知道这意味着我试图在网上搜索但是如果你知道如何解决这个问题就找不到任何东西如果你回答我的问题我会很感激:)
谢谢!
答案 0 :(得分:1)
如果您已经知道userid
应为12,那么只需使用12而不是SELECT id FROM tbl_users WHERE id = 12
。这是一个有效的insert-select声明。
INSERT INTO tbl_vehicle_on_user (vehicle, userid)
SELECT `vehicle`, 12 userid
FROM `tbl_missions`
WHERE `id` = 4 and vehicle is not null;