表A1
UserSN UserID UserNick
21 test3 测试3
22 test4 测试4
23 test5 测试5
24 test6 测试6
25 test7 测试7表B1
Id SendSN SendNick RecvSN RecvNick ItemID
1 22 test4 24 test6 5
2 22 test4 24 test6 8
3 22 test4 24 test6 12通过查询表A1
select * from A1 where UserID='test4' 查询得到test4在表A1中的UserSN=22
select * from A1 where UserID='test6' 查询得到test6在表A1中的UserSN=24增加3条定义的数据到表B1
REPLACE INTO Present (SendSN,SendNick,RecvSN,RecvNick,ItemID) VALUES ('22','test4','24','test6','5');
REPLACE INTO Present (SendSN,SendNick,RecvSN,RecvNick,ItemID) VALUES ('22','test4','24','test6','8');
REPLACE INTO Present (SendSN,SendNick,RecvSN,RecvNick,ItemID) VALUES ('22','test4','24','test6','12');通过上面的命令可以看出我是让test4给test6送了3见件物品 ID分别为5,8,12但是这么查询命令太复杂
我想就用一条命令就完成
update 表A1里的test4并且获得UserSN的数值 and 表A1里的test6并且获得UserSN的数值 然后test4给test6送了3样东西,ItemID分别为5,8,12。送的数据增加到表B1里简单说也就是查询表A1 通过用户名获得UserSN 然后送到表B1里增加数据
2个查询 3个增加请问高手怎么精简呢?
UserSN UserID UserNick
21 test3 测试3
22 test4 测试4
23 test5 测试5
24 test6 测试6
25 test7 测试7表B1
Id SendSN SendNick RecvSN RecvNick ItemID
1 22 test4 24 test6 5
2 22 test4 24 test6 8
3 22 test4 24 test6 12通过查询表A1
select * from A1 where UserID='test4' 查询得到test4在表A1中的UserSN=22
select * from A1 where UserID='test6' 查询得到test6在表A1中的UserSN=24增加3条定义的数据到表B1
REPLACE INTO Present (SendSN,SendNick,RecvSN,RecvNick,ItemID) VALUES ('22','test4','24','test6','5');
REPLACE INTO Present (SendSN,SendNick,RecvSN,RecvNick,ItemID) VALUES ('22','test4','24','test6','8');
REPLACE INTO Present (SendSN,SendNick,RecvSN,RecvNick,ItemID) VALUES ('22','test4','24','test6','12');通过上面的命令可以看出我是让test4给test6送了3见件物品 ID分别为5,8,12但是这么查询命令太复杂
我想就用一条命令就完成
update 表A1里的test4并且获得UserSN的数值 and 表A1里的test6并且获得UserSN的数值 然后test4给test6送了3样东西,ItemID分别为5,8,12。送的数据增加到表B1里简单说也就是查询表A1 通过用户名获得UserSN 然后送到表B1里增加数据
2个查询 3个增加请问高手怎么精简呢?
SET SendSN = (SELECT UserSN
FROM A1
WHERE UserID = 'test4'
)
(需要的输入是送礼人的id或nick,被送礼人的id或nick,所送礼品的itemid)
但是这个sql比较复杂,效率也不算高,可读性不好,
不提倡你使用。分开也许更好。再谈一下,你的B1表的SendNick和recvnick都是多余的,不必要的。