好吧,我在别人面前找到了解决办法:)
SELECT u.id_user,
( Concat(u.name, ' ', u.surname) ) AS name
,
u.login,
u.status,
u.email,
g.name AS TYPE
,
u.joined,
COUNT(DISTINCT( o.id_order )) AS
orders,
( COUNT(DISTINCT( IF(wc.id_status = 1, wc.id_wc, NULL) )) +
COUNT(DISTINCT( IF(lp.id_status = 1, lp.id_lp, NULL) )) ) AS
topics
FROM users AS u
LEFT JOIN tutor_details AS td
ON u.id_user = td.id_user
INNER JOIN groups AS g
ON u.id_group = g.id_group
LEFT JOIN webclasses AS wc
ON td.id_tutor = wc.id_author
LEFT JOIN learning_packs AS lp
ON td.id_tutor = lp.id_author
LEFT JOIN orders AS o
ON ( u.id_user = o.id_user )
LEFT JOIN order_details AS od
ON ( o.id_order = od.id_order )
LEFT JOIN payments AS p
ON ( o.id_order = p.id_order )
WHERE IF(o.id_order != 0, o.order_status = 'paid', 1)
AND IF(p.id_payment != 0, p.payment_status = 'success', 1)
GROUP BY u.id_user
ORDER BY u.id_user ASC