【发布时间】:2011-09-04 04:48:32
【问题描述】:
我正在浏览this SQLAlchemy tutorial 并且对以下示例(大约在页面的一半)感到非常困惑:
>>> s = select([(users.c.fullname + ", " + addresses.c.email_address).label('title')],
... and_(
... users.c.id==addresses.c.user_id,
... users.c.name.between('m', 'z'),
... or_(
... addresses.c.email_address.like('%@aol.com'),
... addresses.c.email_address.like('%@msn.com')
... )
... )
... )
>>> print conn.execute(s).fetchall()
SELECT users.fullname || ? || addresses.email_address AS title
FROM users, addresses
WHERE users.id = addresses.user_id AND users.name BETWEEN ? AND ? AND
(addresses.email_address LIKE ? OR addresses.email_address LIKE ?)
(', ', 'm', 'z', '%@aol.com', '%@msn.com')
[(u'Wendy Williams, wendy@aol.com',)]
(users.c.fullname + ", " + addresses.c.email_address) 如何识别要从中选择的列 - 这是否意味着它会查找标题为 "fullname, email_address" 的列?我显然误解了一些东西。结果 [(u'Wendy Williams, wendy@aol.com',)] 与提供给 SELECT 的字符串格式相同。我只是不明白它是如何工作的。
以前从未做过数据库;我在学习 SQL 的同时也在学习 SQLAlchemy,所以我的问题完全有可能是 SQL 而不是 SQLAlchemy。
【问题讨论】:
标签: sql select sqlalchemy