数据库 - MS Access

时间:2016-06-03 11:01:11

标签: ms-access

我有三张表库存,书籍和DVD。现在我必须制作Book和DVD作为Inven enter image description here tory Table的子数据表。是否可以通过MS Access中的查询进行

1 个答案:

答案 0 :(得分:0)

假设Book / DVD表中的inventID列等于库存表中的inventoryID,则为yes'ish。

如果您想要实际的子数据表,则不需要查询,只需打开库存表并插入子数据表即可。问题是你只能有一个子数据表,所以你将无法一起看到Book和DVD子数据表。

您可以运行查询,但同时查看DVD和Book会导致查看奇怪的查询,其中Book和DVD的列将显示在同一行上。这就是你写这个查询的方式:

    SELECT Inventory.*, DVD.*, Book.*
    FROM (Inventory LEFT JOIN DVD ON Inventory.inventoryID = DVD.inventid) 
    LEFT JOIN Book ON Inventory.inventoryID = Book.inventID;

输出如下:

Sample query (I didn't create all the fields)

在该示例中,测试1,2和3是书籍,4和5是DVD的

您可能更好地为两种类型的项目制作单独的库存表并一起删除库存表。当你想要一起看到它时,你可以运行一个Union查询,将两个表放在一起,只显示公共字段(当前在Inventory表中的所有内容。