Вы опишите сначала существующую таблицу:
import sqlite3
from sqlite3 import Error
def post_sql_query(sql_query):
with sqlite3.connect(database) as connection:
cursor = connection.cursor()
cursor.execute(sql_query)
result = cursor.fetchall()
return result
def create_tables():
users_query = '''CREATE TABLE IF NOT EXISTS USERS
(user_id INTEGER PRIMARY KEY NOT NULL, fullname TEXT, birthday TEXT);'''
order_query = '''CREATE TABLE IF NOT EXISTS ORDERS
(order_id INTEGER PRIMARY KEY NOT NULL, user_id INT, order_date TEXT);'''
post_sql_query(users_query)
post_sql_query(order_query)
database = 'MyDataBase.db'
create_tables()
Заполняем таблицы данными. Например как на картинке. Таблицы не связаны внешним ключом, но связаны через user_id.
# пример для первой строки
user_insert_query = "INSERT INTO users(fullname,birthday) VALUES('Сидоров Иван Петрович', '01.02.1970');"
order_insert_query = "INSERT INTO orders(user_id,order_date) VALUES(2,'10.03.2020');"
post_sql_query(user_insert_query)
post_sql_query(order_insert_query)
Далее нужно составить запрос ( тут нужна помощь знатоков, всё что я знаю о sql это ничего)
Но для моего примера можно и без JOIN обойтись, чтобы найти тех ЮЗЕРов, кто не делал заказы.
user_without_orders_query = 'SELECT fullname FROM users WHERE user_id NOT IN (SELECT user_id FROM orders);'
U = post_sql_query(user_without_orders_query)
print(U)
p.s. знатоки напишите плиз запрос с JOIN для данного примера?