定义子表并从中获取记录

时间:2010-12-30 08:33:24

标签: sql sqlite

我是SQL新手。我正在寻找创建一个数据库,其中一个表中的值是指向另一个“整个”表的指针(不仅仅是另一个表中的值......而是表本身)。如何实现这一点以及如何编写SQL语句来访问子表中的数据?我将用下表说明

项目:

ID   Name   Site              Client          Progress
------------------------------------------------------
1    Bronx  99-Beans Street   Mr.Smith         **1 
2    Mandy  4-Apt Clinton     Mrs. Cross       **2
3    Ani    7-Magbo,Jos, NG   FRN, 9ja         **3

布朗克斯:

Task Description             Start        Finished   Handler
-------------------------------------------------------------
1    Remove Top-Soil         07:50:33     12:10:05   Jack
2    Break Ground            13:00:20     15:33:52   Grader
3    Spray Fertilizer        15:55:30     17:15:23   Suzie

请注意,第二个表的名称来自Project @ id = 1的名称值。 Id仍然可以达到这个目的,在这种情况下,表格标题为'1' ... 这是相当奇怪的,但至少这解释了表应该有的关系。删除'Project'表中的记录还应删除关联的进度表(带有记录名称)*。如何创造&在SQL中查询具有此关系的表?

1 个答案:

答案 0 :(得分:0)

在项目表中,您必须确保ID字段不仅是唯一的,而且还是名称字段。由于您希望使用名称字段在数据库中创建表,因此如果您有重复项,则会出现问题。接下来,我将从我的程序调用项目表,读取表名,然后将该名称传递给特定项目的另一个查询。例如,如果从项目表中删除特定表Bronx,则可以在项目表中编写一个触发器,该触发器将删除Row列中列出的项目特定表。底线只是您在SQL中可能发生的事情的一部分,而其余部分应该在您的程序中进行管理。