#python #postgresql #dbeaver
#python #postgresql #dbeaver
Вопрос:
Я борюсь с проверкой работоспособности. У меня есть база данных PostgreSQL в dbeaver и таблица с именем Album. Я пытаюсь автоматизировать проверку работоспособности. В столбце ArtistID справа у меня есть небольшое окно для перехода, как только я нажимаю на него, я получаю новое окно с ArtistID и именем. Для каждого отдельного ArtistID я хочу проверить, является ли имя соответствующим ArtistID. До сих пор мне удалось получить таблицу (альбом) в фрейме данных, но я не могу добраться до подполя. Заранее благодарю вас за любую помощь.
- Проблема 1: мне нужно получить доступ к подполю (изображение окна базы данных).
- Проблема 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
, который может дать мне доступ к подполю.
Комментарии:
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]