wanmeikakaxi 2023-04-09 18:10 采纳率: 77.8%
浏览 38
已结题

discuz不支持嵌套SELECT,以下代码怎么修改?

在discuz里直接使用这段查询语句,会提示sql安全问题,因为discuz不支持嵌套查询方法。
那么请教,以下代码该怎么修改?谢谢。

SELECT
    p2.LastName,
    p2.FirstName,
    o2.OrderNo
FROM
    Persons p2
LEFT JOIN (
    SELECT
        P .LastName,
        P .FirstName,
        o.OrderNo
    FROM
        Persons P
    INNER JOIN Orders o ON P .Id_P = o.Id_P
) o2
WHERE
    o2.OrderNo IS NULL;

  • 写回答

6条回答 默认 最新

  • 阿里嘎多学长 2023-04-09 18:27
    关注

    以下内容部分参考ChatGPT模型:


    可以将嵌套查询改写成一个临时表,然后再进行LEFT JOIN操作。具体代码如下:

    CREATE TEMPORARY TABLE temp_table
    SELECT
        P .LastName,
        P .FirstName,
        o.OrderNo
    FROM
        Persons P
    INNER JOIN Orders o ON P .Id_P = o.Id_P;
    
    SELECT
        p2.LastName,
        p2.FirstName,
        o2.OrderNo
    FROM
        Persons p2
    LEFT JOIN temp_table o2 ON p2.LastName = o2.LastName AND p2.FirstName = o2.FirstName
    WHERE
        o2.OrderNo IS NULL;
    
    DROP TEMPORARY TABLE temp_table;
    

    首先将嵌套查询改写成一个临时表temp_table,然后再使用LEFT JOIN操作。最后记得删除临时表。


    如果我的建议对您有帮助、请点击采纳、祝您生活愉快

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月14日
  • 创建了问题 4月9日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题