четверг, 24 ноября 2011 г.

интересный запрос с алиасами таблиц и уловиями в джоинах


На что интересное обратить внимание в этом запросе?
  • на то, как присваиваются алиасы, как для колонок, так и для таблиц.
  • на то, что мозно создавать синтетические колонки в выводе запроса, если задать стороку 'Users' modified_by_name_mod, то в результате запроса будет создана колонка modified_by_name_mod, и в эту колонку всех рекордов будет продублировано стоку 'Users'
  • На то, что условия джоина не обязательно выносить в блок WERE, можно сразу за джоином прописать AND и условие.
 SELECT  
    fz_fahrzeuge.*  ,fz_fahrzeuge_cstm.baujahr_c,fz_fahrzeuge_cstm.baujahr_dd_c,
    fz_fahrzeuge_cstm.contact_id_c,fz_fahrzeuge_cstm.endkundenfirmenname_c,
    fz_fahrzeuge_cstm.endkundenkontaktperson_c,fz_fahrzeuge_cstm.endkundenkontakt_funktion_c,
    fz_fahrzeuge_cstm.eurostufe_c,fz_fahrzeuge_cstm.eurostuffe_dd_c,
    fz_fahrzeuge_cstm.fahrgestellnummer_c,fz_fahrzeuge_cstm.fahrzeugtyp_c,
    fz_fahrzeuge_cstm.fp_autobahn_c,fz_fahrzeuge_cstm.fp_innenstadt_c,
    fz_fahrzeuge_cstm.fp_ueberland_c,fz_fahrzeuge_cstm.hersteller_c,
    fz_fahrzeuge_cstm.hubraum_c,fz_fahrzeuge_cstm.kmstand_c,
    fz_fahrzeuge_cstm.leistung_c,fz_fahrzeuge_cstm.motortyp_c,
    fz_fahrzeuge_cstm.oe_schalldaempfernummer_c,fz_fahrzeuge_cstm.variantenbezeichnung_c,
    fz_fahrzeuge_cstm.zustandabgasverrohrung_c , jt0.user_name modified_by_name, 
    jt0.created_by modified_by_name_owner, 'Users' modified_by_name_mod , 
    jt1.user_name created_by_name , 
    jt1.created_by created_by_name_owner  , 'Users' created_by_name_mod , 
    ts1.team_count team_count , ts1.created_by team_count_owner  , 
    'Teams' team_count_mod , CONCAT(IFNULL(tj.name,''),' ',IFNULL(tj.name_2,'')) team_name , 
    tj.created_by team_name_owner  , 'Teams' team_name_mod , jt4.user_name assigned_user_name , 
    jt4.created_by assigned_user_name_owner  , 'Users' assigned_user_name_mod, '                                                                                                                                                                                                                                                              ' accounts_fz_fahrzeuge_name , '                                    '  accounts_fd950ccounts_ida , CONCAT(IFNULL(jt6.first_name,''),' ',IFNULL(jt6.last_name,'')) kontaktperson_c  , jt7.user_name modified_user_name , jt7.created_by modified_user_name_owner  , 'Users' modified_user_name_mod 
FROM 
    fz_fahrzeuge   
LEFT JOIN 
    fz_fahrzeuge_cstm ON fz_fahrzeuge.id = fz_fahrzeuge_cstm.id_c   
LEFT JOIN  
    users jt0 ON jt0.id= fz_fahrzeuge.modified_user_id AND jt0.deleted=0 AND jt0.deleted=0  
LEFT JOIN  
    users jt1 ON jt1.id= fz_fahrzeuge.created_by AND jt1.deleted=0 AND jt1.deleted=0  
LEFT JOIN  
    team_sets ts1 ON ts1.id= fz_fahrzeuge.team_set_id AND ts1.deleted=0 AND ts1.deleted=0  
LEFT JOIN  
    teams tj ON tj.id= fz_fahrzeuge.team_id AND tj.deleted=0 AND tj.deleted=0  
LEFT JOIN  
    users jt4 ON jt4.id= fz_fahrzeuge.assigned_user_id AND jt4.deleted=0 AND jt4.deleted=0 
LEFT JOIN 
    contacts jt6 ON fz_fahrzeuge_cstm.contact_id_c = jt6.id AND jt6.deleted=0   
LEFT JOIN  
    users jt7 ON jt7.id= fz_fahrzeuge.modified_user_id AND jt7.deleted=0 AND jt7.deleted=0 
INNER JOIN 
    accounts_fz_fahrzeuge_c ON fz_fahrzeuge.id = accounts_fz_fahrzeuge_c.accounts_f3f04hrzeuge_idb AND accounts_fz_fahrzeuge_c.accounts_fd950ccounts_ida='79d6e2fd-6ac9-56ef-6a9a-4eb25e6b66d7'  
WHERE 
    fz_fahrzeuge.deleted=0 
ORDER BY fz_fahrzeuge.name

Комментариев нет:

Отправить комментарий