sql / Mysql:完成此查询的最佳方法是什么

时间:2013-08-08 21:00:13

标签: mysql sql

我有大部分的查询工作除了两件事,大件事,一件,一旦我将第四个表[ departments_tbl ]添加到查询中,我得到大约8K行,当我应该只有大约100个。

请参阅附加的架构,没有复选标记,这些是我想要返回的字段。

这没有帮助,但这只是我几乎一直有效的查询之一,直到[department_tbl被添加到混音]

SELECT _n_cust_entity_storeid_15.entity_id, 
    _n_cust_entity_storeid_15.email, 
    customer_group.customer_group_code, 
    departments.`name`, 
    departments.manager, 
    _n_cust_rpt_copy.first_name, 
    _n_cust_rpt_copy.last_name, 
    _n_cust_rpt_copy.last_login_date, 
    _n_cust_rpt_copy.billing_address, 
    _n_cust_rpt_copy.billing_city, 
    _n_cust_rpt_copy.billing_state, 
    _n_cust_rpt_copy.billing_zip
FROM _n_cust_entity_storeid_15 INNER JOIN customer_group ON _n_cust_entity_storeid_15.group_id = customer_group.customer_group_id
     INNER JOIN departments ON _n_cust_entity_storeid_15.store_id = departments.store_id, 
    _n_cust_rpt_copy
ORDER BY _n_cust_rpt_copy.last_name ASC

我已经尝试了子查询,连接,但是无法让它工作。

非常感谢任何帮助。

架构请注意 entity_id cust_id 字段是 _ncust_rpt_copy表 _n_cust_entity_storeid_15 tbl enter image description here

1 个答案:

答案 0 :(得分:1)

最后一张桌子cross join _n_cust_rpt_copy

SELECT _n_cust_entity_storeid_15.entity_id, 
    _n_cust_entity_storeid_15.email, 
    customer_group.customer_group_code, 
    departments.`name`, 
    departments.manager, 
    _n_cust_rpt_copy.first_name, 
    _n_cust_rpt_copy.last_name, 
    _n_cust_rpt_copy.last_login_date, 
    _n_cust_rpt_copy.billing_address, 
    _n_cust_rpt_copy.billing_city, 
    _n_cust_rpt_copy.billing_state, 
    _n_cust_rpt_copy.billing_zip
FROM _n_cust_entity_storeid_15 INNER JOIN
     customer_group
     ON _n_cust_entity_storeid_15.group_id = customer_group.customer_group_id INNER JOIN
     departments
     ON _n_cust_entity_storeid_15.store_id = departments.store_id join
    _n_cust_rpt_copy
     ON ???
ORDER BY _n_cust_rpt_copy.last_name ASC;

对我来说,正确的连接条件是什么并不明显,但必须有一些东西。

我猜他们至少包括部门:

   _n_cust_rpt_copy
     ON _n_cust_rpt_copy.department_name = departments.name and