好的,我有3张桌子; enduserdevicemap,enduser和device。
我正在插入enduserdevicemap,但我需要来自enduser表和设备表的信息。
insert into enduserdevicemap (fkenduser,fkdevice,defaultprofile,tkuserassociation)
select enduser.pkid,device.pkid from enduser,device
where enduser.userid = 1001, device.name like '%6%'
values (enduser.pkid,device.pkid,'f','1')
我需要获取device.pkid和enduser.pkid但是我一直遇到语法错误。我知道这在很多方面都是错的......
答案 0 :(得分:0)
首先,INSERT的属性数应该与SELECT的属性数相匹配。
其次,您不需要最后一个values
行
第三,你确定你没有错过表之间的关系:enduser和device,因为这将插入所有可能性。
示例,(对于属性的选择可能没有意义,但这只是如何使用另一个表中的插入的示例):
INSERT INTO enduserdevicemap (fkenduser,fkdevice,defaultprofile,tkuserassociation)
SELECT e.fkenduser,e.fkdevice,d.defaultprofile,d.tkuserassociation
FROM enduser e,device d
WHERE enduser.userid = 1001 AND device.name like '%6%'
答案 1 :(得分:0)
你不能同时拥有选择和值。它是一个或另一个。 我会做以下事情 插入到enduserdevicemap(fkenduser,fkdevice,defaultprofile,tkuserassociation) 从enduser,device中选择enduser.pkid,device.pkid,'f','1' 其中enduser.userid = 1001,device.name如'%6%'
并不是select中的2个表没有连接, 导致笛卡儿。