我正在尝试创建一个应用程序,其中包含用户为自己隐藏的消息列表,而不会影响其他人。 我认为最简单的方法是拥有一个包含所有消息的主数据库,以及带有额外列的用户副本,例如hidden(bool) 我几乎可以使这个工作,但无法找到一种方法来保存已存在的其他布尔值,同时不复制已存在的emtries。
基本上,如何仅复制另一个中不存在的数据库表的条目。
我尝试使用左连接(SELECT messages.Message,user.Hidden FROM messages LEFT JOIN user ON messages.Message = user.Message)但我不确定这是否有效,因为它给了我一个错误(语法错误)在FROM子句中)
一个例子:
消息DB:
消息
M1
M2
m3
最初用户数据库为空,首次运行时应创建:
消息....隐藏
M1 .................˚F
平方米.................˚F
立方米.................˚F
假设用户隐藏了所有消息,然后将消息DB更改为:
消息
M1
立方米
M4
M5
用户数据库更改为
消息....隐藏
M1 ................Ť
立方米................Ť
M4 ................˚F
M5 ................˚F
我正在使用Access和C#,第一次对数据库做任何事情,对不起,如果这是一个非常愚蠢的问题,找不到其他人问同样的事情。另外,如果我以完全错误的方式解决这个问题,我不会想到更好的方法,但在实际的应用程序中,两个数据库中都会有更多的列。
答案 0 :(得分:0)
可能不是最好的方法,但至少我让它工作了。左连接确实有效,我认为之前的问题是用户是一个保留字
"SELECT messages.message, [User].hidden INTO temp FROM messages LEFT JOIN [User] ON messages.message = [User].message;"
"DROP table [User]"
"SELECT * INTO [User] FROM temp;"
当然,如果有人知道一个更好的实现,特别是那个避免需要临时表的实现,我希望看到它。