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.
22 lines
784 B
22 lines
784 B
1 year ago
|
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)
|