Проверка работоспособности подполей Postgres / Python

#python #postgresql #dbeaver

#python #postgresql #dbeaver

Вопрос:

Я борюсь с проверкой работоспособности. У меня есть база данных PostgreSQL в dbeaver и таблица с именем 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 , который может дать мне доступ к подполю.

База данных Окно базы данных Схема er базы данных

Комментарии:

1. Пожалуйста, сообщите нам КОНКРЕТНУЮ проблему. Мы мало что можем сделать с описанием того, что вы хотите сделать, и картинками. Нам нужно точно знать, что у вас не так … можете ли вы включить фрагмент кода, показывающий проблему, вместе с конкретным вопросом, относящимся к проблеме? Спасибо и добро пожаловать в Stack Overflow!

2. @Seth Предлагают ли новые изменения какие-либо дополнительные объяснения тому, что я пытаюсь продолжить?

3. Лучше, но не могли бы вы добавить вопрос?

4. В моем примере я хочу проверить, является ли 90 Iron Maiden для каждого вхождения конкретного ArtistID.

Ответ №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]