【问题标题】:Postgres/Python subfield sanity checkPostgres/Python 子字段完整性检查
【发布时间】:2020-12-16 18:43:01
【问题描述】:

我正在努力进行健全性检查。我在 dbeaver 上有一个 PostgreSQL 数据库和一个名为 Album 的表。我正在尝试自动化完整性检查。在 ArtistId 列中,我在右侧有一个小的点击窗口,一旦我点击它,我会得到一个带有 ArtistId 和名称的新窗口。对于每个不同的 ArtistId,我希望检查名称是否是相应的 ArtistId。到目前为止,我设法在数据框中获取表格(专辑),但我无法到达子字段。提前感谢您的帮助。

  1. 问题1:我需要访问子字段(数据库窗口图片)。
  2. 问题 2:我需要检查子字段的每一行的艺术家姓名是“Iron Maiden”还是基于用户提供的 ArtistId 的相应艺术家姓名。

我的代码检索数据库中的条目。

    def get_entries(artistID):
        artistID = int(input("Enter an artist_id from the available in postgresql :"))
        df = pd.read_sql("SELECT * FROM Album WHERE ArtistId = %s",connection, params=(artistID,) )
        return df

对于问题 1) 我发现以下代码 SELECT x.* FROM Artist x WHERE x.ArtistId = 4 可以让我访问子字段。

DatabaseDatabase windowDatabase er diagram

【问题讨论】:

  • 请给我们一个具体的问题。对于您想要做什么和图片的描述,我们无能为力。我们需要确切地知道您出了什么问题...您能否包含一个显示问题的代码 sn-p 以及与该问题有关的特定问题?谢谢,欢迎来到 Stack Overflow!
  • @Seth 新的编辑是否对我想要追求的东西提供了任何额外的解释?
  • 更好,但你能添加一个问题吗?
  • 在我的示例中,我想检查每次出现特定 ArtistId 时 90 是否是 Iron Maiden。

标签: python postgresql dbeaver


【解决方案1】:

问题 1 的解决方案是一个简单的查询:

SELECT *
FROM Album a
CROSS JOIN Artist b
Where a.ArtistId  = b.ArtistId
AND a.ArtistId = 90

问题2的解决方案是python行:

#此行返回我的数据框中与 user_input 不同的行

df.loc[df.ArtistId != artistID]

【讨论】:

    猜你喜欢
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 2021-07-05
    • 2018-08-16
    相关资源
    最近更新 更多