首页 > 解决方案 > MySQL:将参数传递给子查询

问题描述

我有一个很长的查询,其中输出表的列之一必须是其结果取决于其他列的值之一的列:

SELECT 
      tord.id as orderID, 
      tord.date_create, 
      tod.total_order_qty, 
      tod.total_order_cost, 
      (SELECT SUM(itemComplexity) FROM ( 
           SELECT (it.complexity * tordt.qty) AS itemComplexity 
              FROM `t1` tordt 
              LEFT JOIN `t2` it ON it.id = tordt.item_id 
              WHERE tordt.order_id = orderID) as TotalComplexity), 
     tu.email, 
     tu.name, 
     tu.phone 
        FROM `t3` tord 
        LEFT JOIN `t4` tod ON tod.order_id=tord.id 
        LEFT JOIN `t5` tu ON tu.id=tod.user_id 
        LEFT JOIN `t6` ti ON tod.item_id=ti.id 
        ORDER BY tord.date_create DESC

我想在这个子查询中传递orderID

SELECT SUM( itemComplexity )
    FROM (
            SELECT (it.complexity * tordt.qty) AS itemComplexity
                FROM `cms_module_rz_mark_order_details` tordt
                LEFT JOIN `cms_module_rz_mark_items` it ON it.id = tordt.item_id
                WHERE tordt.order_id =orderID
        ) AS TotalComplexity

如果我将此查询用作独立查询并将 orderID 设置为变量而不是数字,则查询可以顺利进行。如果我将它用作子查询 - 我无法将orderID作为参数传递。
请帮忙。

标签: mysqlselectparameterssubqueryforward

解决方案


推荐阅读