SQLite-如何比较两列

时间:2011-09-02 06:29:11

标签: android database sqlite mobile

朋友,

我正在公司做一个Android项目,还剩下一些小工作,我需要你的帮助才能完成任务。

问题是......

我创建了两个表,其中table1有一个空列,用于保存名称...

table2有一个list of names,目标只是这个列表中的名字应该保存在table1的空列中,而不是它不应该接受任何手动输入的名字。

2 个答案:

答案 0 :(得分:1)

您似乎想要使名称列表成为验证:如果用户希望将名称保存到table1,则该名称必须已存在于table2中。

通常这将按照以下示例进行,其中只有PRIZEPRODUCTS中列出的产品可以输入到PRIZEWINNERS表中:例如,根据以下数据,有人无法赢得船:

           PRIZEPRODUCTS
           id
           productname

           1|TV
           2|iPad
           3|backpack



           PRIZEWINNERS
           id
           productid
           winner


           ALTER TABLE PRIZEWINNERS
           ADD CONSTRAINT PRIZEWINNERS_PRIZEPRODUCTS_FK
           FOREIGN KEY(productid) REFERENCES PRIZEPRODUCTS(id)

SQLite不使用ALTER TABLE创建外键,而是作为create-table语句的一部分。有关语法,请参阅here。要在Android(2.2)中启用外键支持,请参阅here

现在,如果[productname]是PRIZEPRODUCTS的关键,您可以在[productname]列上建立外键。换句话说,您可以将person-name设为表的键而不是PersonID。但是如果在验证表中更改了该名称,它可能会破坏外键关系,除非启用了ON UPDATE CASCADE,但我不确定Android是否支持此功能。

答案 1 :(得分:0)

我希望以下查询对您有用。

insert into table1(name) values (select name from table2 where id=?)

感谢。