Mysql select from subquery is not working

Fury

I want to create report of total number of orders and total earning that are belong to each users.

SELECT w.id, CONCAT_WS(' ', w.fname, w.sname) AS full_name, 
       te.total_earnings, te.assigned_jobs
FROM users AS w
LEFT JOIN (
    SELECT wr.user_id,
           COUNT(o.order_id) AS assigned_jobs,
           SUM(o.fee) AS total_earnings
    FROM (
        SELECT DISTINCT user_id, order_id, withdrawn
        FROM work_records
    ) AS wr
    LEFT JOIN orders o ON o.order_id = wr.order_id
    WHERE wr.withdrawn IS NULL
      AND o.verified != 'rejected'
) AS te ON te.user_id = w.id
WHERE w.status = 1


orders                      work_records
___________________      _________________________________
| order ID | fee  |      | id | order_id | fee | user_id |
-------------------      ---------------------------------
|   334    | 425  |      |  1 |   334    | 50  |    6    |
                         |  2 |   334    | 50  |    6    |

This query works on single user id. But it doesn't work if I want to get report of all users.

Any advise thanks?

Fury

Here is the answer for others. How ever the query is slower. But if you have faster query would greate to share.

SELECT w.id, CONCAT_WS(' ', w.fname, w.sname) AS full_name, 
       te.total_earnings, te.assigned_jobs
FROM users AS w
LEFT JOIN (
    SELECT w.id,
        SUM(work.earnings) AS total_earnings,
        COUNT(work.order_id) AS assigned_jobs
    FROM users AS w
    LEFT JOIN (
        SELECT wr.order_id, wr.writer_id, o.fee AS earnings
        FROM work_records wr
        LEFT JOIN orders o ON o.order_id = wr.order_id
        WHERE wr.withdrawn IS NULL
          AND o.verified = 'verified'
        GROUP BY wr.order_id
    ) work ON work.writer_id = w.id
    GROUP BY work.writer_id
) te ON te.id = w.id

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

MYSQL Update from a select subquery

From Dev

MySQL SELECT latest record from a subquery with UNION

From Dev

mysql subquery select with field from query

From Dev

MYSQL Select items in list from subquery

From Dev

Add a mysql subquery to select data from yesterday

From Dev

MySQL Group By not working in subquery

From Dev

Mysql INSERT SUBQUERY not working

From Dev

MySQL subquery not working

From Dev

mysql select Where (subquery) IN

From Dev

mysql select Where (subquery) IN

From Dev

MySQL update a table and select from the same table in a subquery

From Dev

MySQL - View's SELECT contains a subquery in the FROM clause

From Dev

Derby Select over subquery not working

From Dev

GROUP CONCAT not working in a subquery - mysql

From Dev

Mysql query with IN and if-subquery not working

From Dev

subquery as the from for mysql

From Dev

MySQL using variables in SELECT subquery

From Dev

QueryOver: select columns from subquery

From Dev

Referencing FROM subquery in SELECT clause

From Dev

Referencing FROM subquery in SELECT clause

From Dev

Select column(s) from subquery

From Dev

Using SELECT subquery in WHERE clause not working

From Dev

MySQL Update Value from SubQuery

From Dev

MySQL Error Code: 1349. View's SELECT contains a subquery in the FROM clause

From Dev

MySql Select data from SubQuery when master query has groupby clause

From Dev

MySQL View's SELECT contains a subquery in the FROM clause... help to rewrite?

From Dev

MySQL select max value without subquery

From Dev

MySQL: refer to SELECT subquery alias in WHERE

From Dev

Mysql Insert query with values and select as subquery

Related Related

HotTag

Archive