我在运行此代码时遇到问题。它说:
<块引用>语法错误或访问冲突:1064 你的 SQL 有错误 语法。
我不知道这是否来自 subquery
。这样写 subquery
是否正确?
$result = DB::table('grievance_redress_info')
->select(
'complainer_name',
'phone',
'complaint_date',
'address',
'complaintSub.name_en',
'resolve_action_date',
DB::raw("(SELECT grievance_history.status
FROM grievance_history
WHERE grievance_history.grievance_id=grievance_redress_info.id
ORDER BY grievance_history.id DESC LIMIT 1) AS current_status")
)
->leftJoin("common_labels AS
complaintSub",'grievance_redress_info.complaint_subject_id','=','complaintSub.id')
->get();
答案 0 :(得分:1)
我认为你可以这样做
from pprint import pprint
def reformat_flat_info(flat):
reformatted = {}
for o in flat:
key = o["aid"]
del o["aid"]
reformatted[key] = o
return reformatted
def expand_data(aid, flat, lvl=0):
obj = flat[aid]
if obj is None: return {aid: obj}
obj.update({"aid": aid})
if lvl > 1:
return {aid: None}
for nid,id in enumerate(obj["data"]):
obj["data"][nid] = expand_data(id, flat, lvl=lvl+1)
if "nested_data" in obj:
for nid,id in enumerate(obj["nested_data"]["data"]):
obj["nested_data"]["data"][nid] = expand_data(id, flat, lvl=lvl+1)
return {aid: obj}
# Provide the flat information structure
flat_info = [
{
"aid": "id3",
"data": ["id1", "id2"]
}, {
"aid": "id1",
"data": ["id3", "id2"]
}, {
"aid": "id2",
"nested_data": {"aid": "id4", "atype": "nested", "data": ["id1", "id3"]},
"data": []
}
]
pprint(flat_info)
print('-'*80)
# Reformat the flat information structure
new_flat_info = reformat_flat_info(flat=flat_info)
pprint(new_flat_info)
print('-'*80)
# Generate the result
starting_id = "id3"
result = expand_data(aid=starting_id, flat=new_flat_info)
pprint(result)
您可以查看docs了解更多
我希望这有效!