Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 需要帮助将子查询转换为JOIN的吗_Mysql_Sql_Join_Subquery - Fatal编程技术网

Mysql 需要帮助将子查询转换为JOIN的吗

Mysql 需要帮助将子查询转换为JOIN的吗,mysql,sql,join,subquery,Mysql,Sql,Join,Subquery,有人能帮我把这个基于子查询的查询转换成JOIN的吗 SELECT DISTINCT brm_products_assets_id, (select brm_products_assets_value from brm_products_assets_values where brm_products_assets_id=a.brm_products_assets_id and brm_products_assets_def_id=1) as prod_asset_name, (select br

有人能帮我把这个基于子查询的查询转换成JOIN的吗

SELECT DISTINCT brm_products_assets_id,
(select brm_products_assets_value from brm_products_assets_values where brm_products_assets_id=a.brm_products_assets_id and brm_products_assets_def_id=1) as prod_asset_name,
(select brm_products_assets_value from brm_products_assets_values where brm_products_assets_id=a.brm_products_assets_id and brm_products_assets_def_id=3) as prod_asset_desc,
(select brm_products_assets_value from brm_products_assets_values where brm_products_assets_id=a.brm_products_assets_id and brm_products_assets_def_id=2) as prod_asset_type,
ifnull((select brm_products_assets_value from brm_products_assets_values where brm_products_assets_id=a.brm_products_assets_id and brm_products_assets_def_id=5),'') as file_order 
from brm_products_assets a where last_mnt_option!='d';
此查询当前执行时间超过20秒。我尝试了一个有关brm_产品、资产和价值的指数,但没有帮助


谢谢

您希望执行条件聚合,而不是单独的查询:

SELECT brm_products_assets_id,
       max(case when brm_products_assets_def_id = 1 then brm_products_assets_value
           end) as prod_asset_name,
       max(case when brm_products_assets_def_id = 2 then brm_products_assets_value
           end) as prod_asset_desc,
       max(case when brm_products_assets_def_id = 3 then brm_products_assets_value
           end) as prod_asset_type,
       max(case when brm_products_assets_def_id = 5 then brm_products_assets_value else ''
           end) as file_order
from brm_products_assets a join
     brm_products_assets_values b
     on b.brm_products_assets_id = a.brm_products_assets_id
where last_mnt_option <> 'd'
group by a.brm_products_assets_id;