2016-03-28 107 views
0

从2本书基本SQL炼金术版我把这个示例链式不工作变量Where子句

SELECT orders.order_id, users.username, users.phone, cookies.cookie_name, line_items.quantity, line_items.extended_cost 
FROM users JOIN orders ON users.user_id = orders.user_id JOIN line_items ON orders.order_id = line_items.order_id JOIN cookies ON cookies.cookie_id = line_items.cookie_id 
WHERE users.username = :username_1 

现在,这里有趣的是,与其"cakeeater"的SQL,则显示:username_1

其逻辑结果查询不返回任何值。

我使用的数据库是Postgres的 Python版本3.4.3 的SQLAlchemy版本1.0.12

有人能帮助我得到这个权利?

回答

0

它是sqlalchemy记录格式。 “:username_1”将被您的变量替换。 尝试你的psql控制台上运行

SELECT orders.order_id, 
     users.username, 
     users.phone, 
     cookies.cookie_name, 
     line_items.quantity, 
     line_items.extended_cost 
FROM users 
JOIN orders ON users.user_id = orders.user_id 
JOIN line_items ON orders.order_id = line_items.order_id 
JOIN cookies ON cookies.cookie_id = line_items.cookie_id 
WHERE users.username = 'cakeeater'; 

,也许你会得到一个空的结果。

PS:检查你的sql。尝试替换joinouterjoin

+0

我已经从控制台运行查询,它返回我期望的结果。它不是空的 –