Python全系列 教程
3567个小节阅读:5929.5k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
id | name | pid |
---|---|---|
1 | 河北省 | 0 |
2 | 石家庄 | 1 |
3 | 天津 | 1 |
当多表关联查询的时候,
有时候同一个表要用到多次,
这时候用别名就可以方便的解决命名冲突的问题了
xxxxxxxxxx
from random import randint,choice
from sqlalchemy import Column,Integer,String,func,and_
from db_util import Base,Session
class City(Base):
__tablename__ = 't_city'
id = Column(Integer, primary_key=True,autoincrement=True)
name = Column(String(32))
pid = Column(Integer)
def __repr__(self):
return f'<City: id={self.id} name={self.name} pid={self.pid}>'
def create_data():
Base.metadata.drop_all()
Base.metadata.create_all()
city1 = City(id = 1, name='河北省',pid = 0)
city2 = City(id = 10, name='石家庄',pid = 1)
city3 = City(id = 11, name='天津市',pid = 1)
city4 = City(id = 2, name='广东省',pid = 0)
city5 = City(id = 21, name='深圳市',pid = 2)
city6 = City(id = 22, name='广州市',pid = 2)
with Session() as ses:
ses.add(city1)
ses.add(city2)
ses.add(city3)
ses.add(city4)
ses.add(city5)
ses.add(city6)
ses.commit()
from sqlalchemy.orm import aliased
def query_data():
c = aliased(City)
with Session() as ses:
citys = ses.query(City,c.name,c.id).join(c,City.id == c.pid).all()
print(citys)
if __name__ == '__main__':
create_data()
query_data()