我有一个用户表:
UserID | User
1 Martin
2 Lilian
3 Oliver
现在我有另一张桌子:
dataID | UserID | key | value
现在我需要做的是:
从用户表中选择某些用户,并在数据表中插入几个recrods:
我需要结合这两个查询:
INSERT INTO `data` (`UserID`, `key`, `value`)
VALUES (HERE_ID_OF_USER, 'someKey', 10),
VALUES (HERE_ID_OF_USER, 'otherKey', 20)
SELECT `UserID` FROM `users` WHERE ...
答案 0 :(得分:1)
我不确定我完全明白你想做什么,但我认为你想要这个:
INSERT INTO data (UserID,key,value) SELECT UserID,'somekey',10 FROM users WHERE ...
INSERT INTO data (UserID,key,value) SELECT UserID,'otherkey',20 FROM users WHERE ...
如果这不是你想要的,你需要更明确一点......
<强>更新强>
如果您已经为表中的每个用户插入了数据,则可以使用:
INSERT INTO data (UserID,key,value)
SELECT u.UserID,dd.key,dd.value FROM users u,default_data dd WHERE ...
如果您不这样做(并且不想将其存储在表格中),您可以使用;
INSERT INTO data (UserID,key,value)
SELECT UserID,'some key',10 FROM users WHERE ...
UNION ALL
SELECT UserID,'other key',20 FROM users WHERE ...
或(为了避免重复WHERE
条款):
INSERT INTO data (UserId,key,value)
SELECT u.UserID,dd.key,dd.value
FROM users u,
(
SELECT 'some key' AS key,10 AS data
UNION ALL
SELECT 'other key',20
) dd
WHERE ...
可能有更多方法可以做到。
答案 1 :(得分:0)
构建您的选择查询以根据用户ID连接从2表中获取数据。然后将结果集插入到所需的表中。
INSERT INTO DATA(SELECT A.USER_ID,B.KEY,B.VALUE from USERS A,SECOND_TABLE B WHERE A.USER_ID = B.USER_ID AND A.USER_ID in(.....))