有人可以帮我写出确切的查询,这可以为我提供以下所需的结果,
我写道,
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查询计数
但它没有给出我想要的输出。它以
的形式提供输出
但是我只想在上面用一行排列,因为它们中的一切都是相同的,但是它们在输出中显示了很多次(为什么不是一次)。
有人可以帮助我吗?
答案 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