You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
784 B
21 lines
784 B
from sqlalchemy import select, func |
|
from s1_models import * |
|
|
|
# join |
|
columns = [orders.c.order_id, users.c.username, users.c.phone, cookies.c.cookie_name, line_items.c.quantity, |
|
line_items.c.extended_cost] |
|
cookiemon_orders = select(columns) |
|
cookiemon_orders = cookiemon_orders.select_from(orders.join(users).join(line_items).join(cookies)).where( |
|
users.c.username == 'cookiemon') |
|
result = connection.execute(cookiemon_orders).fetchall() |
|
for row in result: |
|
print(row) |
|
|
|
# outerjoin |
|
columns = [users.c.username, func.count(orders.c.order_id)] |
|
all_orders = select(columns) |
|
all_orders = all_orders.select_from(users.outerjoin(orders)) |
|
all_orders = all_orders.group_by(users.c.username) |
|
result = connection.execute(all_orders).fetchall() |
|
for row in result: |
|
print(row)
|
|
|