2016-03-28 206 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

我已經從控制檯運行查詢,它返回我期望的結果。它不是空的 –