我将软件PAD文件数据库从http://paddatabase.net/download.html导入到Microsoft Access中名为main的表中:
MAIN
-----
ID
ProgramName
Keywords
.
.
我创建了两个新表:Tags和TagSoftwareRel。
Tags
--------
ID
Tag
TagSoftwareRel
--------------
ID
SoftwareID <- (MainTable)
TagID <- tags table
我从“关键字”字段中将所有关键字提取为“关键字”表格中的单个字词。他们来自Main的关键字字段如下所示:
Keywords
Paul, animated, moving monk, paulaner
Image,Imaging,Graphics,Rotate,Resize,Effects,
Sharpen,Blur,JPEG,TIFF,BMP,WBMP,PSD,GIF,PDF,Format,ICM,ICC,CMYK,
thumbnail,Convert,Display,AJAX,AVI,red-eye removal,lossless JPEG transform
correction, rich,internet,applications,ebooks,webmaster,authoring,
我想要做的是创建一个SQL查询,它通过使用where tags.tag(如main.keywords)将tags标签中的tagID插入tagsoftware.tagid,并将主表中的相关softwareID插入到tagsoftwarerel.softwareid中。 p>
我有点不知道从哪里开始。
由于它是一个公共数据库,我可以向任何感兴趣的人提供数据库的副本。
非常感谢任何帮助。谢谢。
答案 0 :(得分:0)
我假设TagSoftwareRel中的字段ID是autovalue或identity。这意味着通过插入新行自动创建值: 我知道您已经填写了标签表。
这是一个填充TagSoftarerel-Table的查询:
Insert into TagSoftarerel (SoftwareID, TagID)
Select m.Id,
(Select T.TagId from Tag T where T.Tag = m.Keyword) as TagId
from MAIN m
<强>建议:强> 我想你可以找到更好的解决方案。标签信息在您的解决方案中是多余的。 如果您只是将Tag.Id添加到主表中,您可以删除关键字列并将标记信息仅存储在它所属的标记表中。