微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

查询生成器原始子查询不起作用

如何解决查询生成器原始子查询不起作用

我在运行此代码时遇到问题。它说:

语法错误或访问冲突: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();

解决方法

我认为你可以这样做

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,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,lvl=lvl+1)

    return {aid: obj}

# Provide the flat information structure
flat_info = [
    {
        "aid": "id3","data": ["id1","id2"]
    },{
        "aid": "id1","data": ["id3",{
        "aid": "id2","nested_data": {"aid": "id4","atype": "nested","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了解更多

我希望这有效!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。