簡體   English   中英

為什么這個SQL查詢在Python中不起作用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM