Как можно выполнить данную задачу правильно?

Как можно исправить скрипт, чтобы получить список всех пользователей с указанным возрастом для каждого пользователя с именем "Андрей"?
  • 9 марта 2024 г. 7:59
Ответы на вопрос 2
Для выполнения данной задачи, необходимо отредактировать скрипт, добавив запрос к базе данных для выбора всех пользователей с именем "Андрей" и указанным возрастом. 

Примерно такой вид может иметь скрипт:

```python
import sqlite3

conn = sqlite3.connect('database.db')
cursor = conn.cursor()

cursor.execute("SELECT id FROM users WHERE name = 'Андрей'")
andreys = cursor.fetchall()

for andrey in andreys:
    cursor.execute("SELECT * FROM users WHERE age = ? AND id != ?", (andrey[1], andrey[0]))
    users_with_same_age = cursor.fetchall()
    print(f"Список пользователей с именем 'Андрей' и возрастом {andrey[1]}:")
    for user in users_with_same_age:
        print(user)

conn.close()
```

Этот скрипт будет выбирать всех пользователей с именем "Андрей", затем для каждого из них выбирать пользователей с тем же возрастом, и выводить список найденных пользователей.
Попробуйте так (возможно, что ваша ошибка - это условный ambiguous name и проблема в том, что при выводе в результирующую таблицу у вас попадает поле id, которое есть в двух соединяющихся таблицах): 
SELECT 
    l.name AS name,
    l.id AS id,
    r.age AS age 
FROM 
    (
    SELECT DISTINCT 
        name, id 
    FROM 
        names 
    WHERE 
        name = 'Андрей' 
    ) AS l
    LEFT JOIN 
    ages AS r 
    ON 
    l.id = r.id
Похожие вопросы