2016-05-12 91 views
1

如果我有一個設置如每個結果:插入到不同表的SELECT查詢

set @idToIgnore = (select user_id from user_field_value where user_field_id = 82 and value = 'No'; 

然後我運行一個選擇查詢:

select id from users where account_id = 10 and id != @idToIgnore; 

它返回〜15個不同的ID值。

我再要運行一個查詢,如:

insert into user_field_value(user_id, user_field_id, value) values (**user_id**, 82, 'Yes'); 

其中USER_ID在最後插入查詢是每一個ID的距離第二個查詢。

我認爲有一個簡單的方法來做到這一點,但我無法弄清楚。

回答

3

爲什麼不只是在一個INSERT INTO ... SELECT ...查詢中做到這一點?

INSERT INTO user_field_value(user_id, user_field_id, value) 
SELECT id, 82, 'Yes' FROM users 
WHERE account_id = 10 and id != @idToIgnore; 

你也可以做整個事情在一個查詢中使用子查詢,而不是@idToIgnore,但在性能此事小心。

相關問題