У меня есть небольшая база данных, унаследованная от почти несуществующего проекта.В этой базе данных есть таблица «Пациенты» с индивидуальными личными данными и уникальное поле «Id», а также таблица «Экзамены» с некоторыми полями для каждого исследования, одно из этих полей - «Patient_Id».
Что яхочу, чтобы для данного пациента (строка из таблицы «Pacientes») были экзамены (строки) из таблицы «Exames», чей «Patient_Id» совпадает с экзаменом данного пациента.
Я очень новичок в SQL, поэтомуесли вопрос очень наивный, я прошу прощения.
Мой рабочий код следующий, но я использую цикл for, хотя я бы предпочел иметь SQL-запрос (который является самой точкой использования баз данных, ядумаю ...):
#!/usr/bin/env python
# coding: utf-8
import os, sqlite3
conn = sqlite3.connect('BDdata.db3')
conn.row_factory = sqlite3.Row
c = conn.cursor()
c.execute('SELECT * FROM Exames')
exams = c.fetchall()
c.execute('SELECT * FROM Pacientes')
for row in c:
Nome = row['nome']
ID = row['Id']
for exam in exams: # I would like to replace this loop
if exam['Id_Paciente'] == ID: # with a SQL query meaning
print exam['File']
=================================
AnПохоже, я хочу ответить на аналогичный вопрос, но я понятия не имею, как это сделать в Python с модулем sqlite3
, тем более, что в этом выражении важно и что является случайным, или какова структура синтаксиса:
Выбор строк из таблицы одним полем из другой таблицы
SELECT i.prof_image
FROM profile_images i
WHERE cat_id = (select max(cat_id) from images_cat)