SQL父1子表之间的条件关系

时间:2012-12-12 15:03:11

标签: sql sql-server

我正在尝试使用Sql Server Management Studio开发数据库。

Grandparent table
Resource
ResourceID_PK   int
Project     nvarchar(5)
Model       nvarchr(15)

Parent table
Machine
MachineID_PK    int
Model_UK        nvarchar(15)
Type
Brand
EmptyWeight

Child tables
DumpTruck   .       Excavator       Loader
DumpTruckID_PK      ExcavatorID_PK  Loader_ID       int
Model_UK            Model_UK        Model_UK        nvarchar(15)
Capacity            Capacity        Capacity

模型列对于整个数据库是唯一的。我需要从祖父母表到达容量列。每个子表的模型列都是唯一的,因为所有机器都有不同的模型,如“CAT966”。

我需要使用祖父模型列来读取其中一个具有相同模型的子表。

我开发了一个c#项目,它输入了机器的模型,并将从相应的子表中返回容量。

1 个答案:

答案 0 :(得分:1)

要连接表,您需要父表中的ResourceID_PK和子表中的MachineID_PK。然后,您可以加入表格并从祖父母表格到达“容量”列。

修改

  1. 将ResourceID_PK添加到Machine(父表)
  2. 将MachineID_PK添加到子表
  3. 要根据模型获取容量,请使用以下查询:

    Select Capacity
    From DumpTruck c
    Join Machine p on c.DumpTruckID_PK=p.MachineID_pk
    Join Resource gp on gp.ResourceID_PK=p.ResourceID_PK
    where gp.Model='X'
    

    (一个小警告,我还没有测试过这个查询。)