2017-10-08 34 views
0

我需要從幾個表中獲取一些統計信息:如何從不同的子查詢中收集多個值

我有工人,訂單和約會。

怎樣纔可以在一個查詢完成:

1. SELECT count(id) AS TotalWorkers FROM workers; 
2. SELECT w.name AS BestWorker FROM orders AS o LEFT JOIN workers AS w ON pe_id=w.id GROUP BY pe_id ORDER BY count(o.id) DESC LIMIT 1 
3. SELECT count(id) AS OrdersPerformed FROM orders WHERE pe_id=1; 
4. SELECT count(id) AS OrdersAccepted FROM orders WHERE ac_id=1; 
5. SELECT post AS LastAppointment FROM appointments AS a LEFT JOIN posts AS p ON post_id=p.id WHERE worker_id=1 ORDER BY date DESC LIMIT 1; 

如何收集它們是一個大的查詢?

回答

2

一個簡單的方法是把在select前面:

SELECT (SELECT count(id) FROM workers) AS TotalWorkers, 
     (SELECT w.name FROM orders AS o LEFT JOIN workers AS w ON pe_id=w.id GROUP BY pe_id ORDER BY count(o.id) DESC LIMIT 1) as BestWorker, 
     . . . 
相關問題