根据需要获取结果所需的MySql查询帮助

时间:2012-05-12 14:49:22

标签: php mysql sql

有人可以帮我写出确切的查询,这可以为我提供以下所需的结果,

我写道,

   SELECT tbl_order_detail.order_id, 
          tbl_order_detail.order_title, 
          tbl_order_detail.dealer_id
     FROM tbl_order_detail
LEFT JOIN tbl_order_lead_send_detail ON tbl_order_detail.order_id=tbl_order_lead_send_detail.order_id
    WHERE tbl_order_detail.order_status = 'Active'

从一个php函数中找到经销商名称,其中包含dealer_id并返回dealer_name(使用另一个mysql查询),并从另一个mysql查询计数

但它没有给出我想要的输出。它以

的形式提供输出

但是我只想在上面用一行排列,因为它们中的一切都是相同的,但是它们在输出中显示了很多次(为什么不是一次)。

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:3)

如果您GROUP BY订单_id,那么您应该好好去

修改

要获取经销商名称,只需加入经销商表并选择经销商名称栏。

未经测试,可能包含错误

SELECT
    tbl_order_detail.order_id, 
    tbl_order_detail.order_title, 
    dealer.dealer_name,
    COUNT(tbl_order_lead_send_detail.order_id) AS total_customers_count
FROM tbl_order_detail
JOIN dealers ON (tbl_order_detail.dealer_id = dealers.dealer_id)
LEFT JOIN tbl_order_lead_send_detail ON (tbl_order_detail.order_id = tbl_order_lead_send_detail.order_id)
WHERE tbl_order_detail.order_status = 'Active'
GROUP BY tbl_order_detail.order_id, tbl_order_detail.order_title, dealer.dealer_name;

答案 1 :(得分:1)

要计算,请使用COUNT()。要按订单ID对结果进行分组,请使用GROUP BY tbl_order_detail.order_id - MySQL的一个优点(或一般的SQL)是它与普通英语非常接近。

答案 2 :(得分:0)

试试这个:

SELECT OD.order_id,        
       OD.order_title, 
       OD.dealer_id,
       SD.customer_id, 
       COUNT(SD.id) AS NumCustomers
FROM      tbl_order_detail OD
LEFT JOIN tbl_order_lead_send_detail SD
      ON OD.order_id=SD.order_id
WHERE OD.order_status='Active'
GROUP BY OD.order_id,        
         OD.order_title, 
         OD.dealer_id,
         SD.customer_id