我想将2个选择合并为一个。

首先选择(我想拥有子查询)是


    选择ait.ai_type_id,count(ai.envelope_id)
    来自oas_add_info_type ait
    左加入oas_case_additional_info ai
        开启ai.type = ait.ai_type_id
       AND ai.envelope_id = 4465
    按ait.ai_type_id分组
    按ait.ai_type_id排序



退货


    + ------------ + ----------------------- +
    | ai_type_id | count(ai.envelope_id)|
    + ------------ + ----------------------- +
    | 0 | 17 |
    | 1 | 0 |
    | 2 | 0 |
    | 3 | 0 |
    | 4 | 0 |
    + ------------ + ----------------------- +



和主要选择看起来像:


    SELECT e.envelope_id,e.transmission_date,e.mcf,e.vehicle_action,e.manually_add
    从oas_case_envelope e,oas_case_vehicle v,oas_users u,oas_companies c WHERE e.envelope_id = v.envelope_id
      AND u.user_id = 1
      AND c.company_id = u.company_id
      AND(((e.envelope_name =''AND Length(e.envelope_name)> 0)OR(v.vehicle_vin ='19XFB2F53CE105646'AND Length(v.vehicle_vin)> 0))
    按e.envelope_id DESC排序



并返回


    + ------------- + --------------------- + ----- + ------- --------- + ---------------- +
    | capsule_id |传送日期| mcf | vehicle_action |手动添加|
    + ------------- + --------------------- + ----- + ------- --------- + ---------------- +
    | 4465 | 2017-04-03 21:29:20 | 0 | 0 | 1 |
    | 4418 | 2017-01-14 11:37:46 | 0 | 0 | 0 |
    | 4384 | 2016-11-30 20:29:24 | 0 | 0 | 0 |
    | 4365 | 2016-10-31 21:59:37 | 0 | 0 | 0 |
    + ------------- + --------------------- + ----- + ------- --------- + ---------------- +



我需要把这两个放在一起

我最好的尝试是


    SELECT e.envelope_id,e.transmission_date,e.mcf,e.vehicle_action,e.manually_added,A。*
    从oas_case_envelope e
    加入oas_case_vehicle v ON e.envelope_id = v.envelope_id
    加入oas_users u ON u.user_id = 1
    加入oas_companies c ON c.company_id = u.company_id
    内部联接(选择*从
           (选择ait.ai_type_id,count(ai.type)
            来自oas_add_info_type ait
            左连接oas_case_additional_info ai ON ai.type = ait.ai_type_id AND ai.envelope_id = a.envelope_id
            按ait.ai_type_id分组
            按ait.ai_type_id排序))作为A ON.envelope_id = e.envelope_id
    在哪里(((e.envelope_name =''AND Length(e.envelope_name)> 0)OR(v.vehicle_vin ='19XFB2F53CE105646'AND Length(v.vehicle_vin)> 0))



并且我收到错误1248(42000):每个派生表必须具有自己的别名

我将不胜感激任何想法。
提前致谢

最佳答案

容易..更改此行

     order by ait.ai_type_id)) as A ON a.envelope_id = e.envelope_id




        order by ait.ai_type_id) as B) as A ON a.envelope_id = e.envelope_id


您在那里有一个额外的派生表。

10-07 12:36