[英]why this sql query doesn't work in python?
我有一個函數findParent
,它接受一個字符串,將其與db
其他字符串進行比較,然后返回另一個字符串。 我將此寫在.py文件中。
products=db(findParent(db.product_info.source_place)==auth.user.place).select()
問題是, db.product_info.source_place
不會從db
db.product_info.source_place
source_place
,而是發送字符串本身,即findParent
接收db.product_info.source_place
而不是db
的相應值。
我究竟做錯了什么?
比較兩個字段時,例如:
products=db(table1.field1==table2.field2).select()
在這兩個字段上應用聯接后,它將返回一個表。 當您使用findParent(db.product_info.source_place)
, findParent
只是考慮作為字符串db.product_info.source_place
因為實際上表中的所有行均未調用它,並且對auth.user
進行了一次賦值和評估auth.user
與place列的返回值進行比較。
解決方案添加:
rows = db(db.product_info).select(db.product_info.source_place)listwantedsource = []用於行中的行:listwantedsource.append(findParent(row.source_place))products = db(auth.user.place.belongs(listwantedsource) ))。選擇()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.