将另一个表中的值分配给另一个表SQLITE

时间:2017-08-07 19:06:49

标签: java sqlite

我目前正在创建一个数据库应用程序,我的sql语法有问题,也许我的数据库不正确。

我有两张桌子:

USERS

id_user | login | password | name | surname | position

1         test     test      Jan    Kowalski    IT

COMPUTERS

id_computer | name | model | serial | os | cpu | ram

1            HP   Q445    XXXYYY    Ubuntu  2x2GHz 4GB

我想将此计算机分配给用户,但它不能100%工作..

   SELECT users.id_user, computers.* FROM users LEFT JOIN computers ON computers.id_computer= users.id WHERE users.id = 1

也许我应该在表格“用户”的下一栏添加设备?

在使用INSERT INTO添加行之前,首先我需要绑定/关联这两个表,我不知道如何。

我想将此记录添加到用户,然后读取此行并在我的应用程序中显示(在Java Swing中)。

1 个答案:

答案 0 :(得分:0)

表USERS和COMPUTERS需要通过外键关联。我建议USERS和COMPUTERS之间的关系是一对多的,所以从理论上讲,至少一个用户可以拥有多台计算机。为此,在COMPUTER表中添加一个名为id_user的额外字段,这是将给出两个表之间链接的外键。在该字段中,您使用计算机放置此人的id_user。因此,您现在可以在users.id_user和computers.id_user字段上使用连接执行选择查询。

SELECT users.id_user, computers.* FROM users LEFT JOIN computers ON users.id_user = computers.id_user;

您使用的LEFT JOIN将选择所有用户是否拥有计算机。如果还没有,那么将id_user和id_computer作为其表的唯一主键。也许在这些字段上考虑AUTOINCREMENT。

注意:

  1. 我使用大写和小写表格来帮助您理解,但请注意您不一致。此外,您的选择查询的字段ID不在表架构中。
  2. Link to a tutorial on the concepts of relational databases that you may find helpful as you progress with your project