SQLiteStudio:视图问题

时间:2017-11-28 20:50:55

标签: database sqlite sqlitestudio

我正在尝试构建一个供个人使用的数据库,而db的一部分将存储地址数据,我这样做是这样的:

表1:地址(第1行和第2行) - 外键---->邮政编码

表2:邮政编码 - 外键---->地方(例如:城市)

表3:地点 - 外键----> Provenience

表4:便利性 - 外键---->国

表5:状态 - 外键---->国家

表6:国家/地区

PS: 来自1的表格 - > 6嵌套外键

我想知道如何在表1 中生成所有数据以及表2中的所有相应数据 - > 6,而不重复常见列??? / p>

1 个答案:

答案 0 :(得分:0)

谢谢你我设法解决它的每个人,这就是我如何做到的,只显示我想要的字段,我想要的行没有重复。 (原谅我,我是个菜鸟)

从左边第一个表格的字段开始,

SELECT [Table 1].Address1 AS [Address Line 1],
       [Table 2].Postal_Code AS [Postal Code]

  FROM [Table 1]

       INNER JOIN
       [Table 2] on [Table 1].Primary_key_Column = [Table 2].Foreign_key_Column

为了让像我这样的SQLite noods变得简单:

  1. 仅从每个表格中选择所需的列。
  2. 按照数据库顺序层次结构的相同顺序从左到右排序所选列。
  3. 编写SQLite视图查询,使表格字段的外观顺序从上到下,例如我之前编写的示例。
  4. “FROM”子句中,只使用第一个表。
  5. 那么如果您想要更多表中的更多字段(包含嵌套字段的表格会怎么样?

    按照以下步骤

    SELECT [Table 1].Address1    AS [Address Line 1],
           [Table 2].Postal_Code AS [Postal Code],
           [Table 3].Locality    AS [Locality],
           [Table 4].Provenience AS [Provenience]
    
      FROM [Table 1]      <---- You only need to mention the first table of the first field
    
           INNER JOIN
           [Table 2] on [Table 1].Primary_key_Column = [Table 2].Foreign_key_Column
    
           INNER JOIN
           [Table 3] on [Table 2].Primary_key_Column = [Table 3].Foreign_key_Column
    
           INNER JOIN
           [Table 4] on [Table 3].Primary_key_Column = [Table 4].Foreign_key_Column
    

    我知道这个解决方案可能会很麻烦,但它的优点是:

    1. 当您想要添加关卡时,您可以在“SELECT”布局的末尾添加一行,在“INNER JOIN”的末尾添加另一行集团。
    2. 如果查询数据时出现问题,您将更容易阅读和调试。
    3. 这就是它与我解决的方式,但我已经准备好听到更好的答案了