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
			| 
											2 years 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)
 |