我有2個表,Task
和Transaction
,它看起來像這樣:多個內部連接 - MySQL的
任務
交易
我想創建一個從兩個表中返回信息的查詢。
色譜柱:name, priority, waiting, error, done, total, status
其中:
- 名稱= Task.name
- 優先= Task.priority
- 等待=計數(transaction.id)WHERE task.id =事務。任務和transaction.status = 1
- error = count(transaction.id)WHERE task.id = transaction.task and transaction.status = 2
- 做=計數(transaction.id)WHERE task.id = transaction.task和transaction.status = 3
- 總=計數(transaction.id)WHERE task.id = transaction.task
- 狀態=任務。狀態
我INNER
試圖加入,但我得到一個錯誤的結果:
SELECT tk.name, tk.priority, waiting.waiting, error.error, done.done, total.total
FROM task AS tk, transaction AS tran
INNER JOIN (
SELECT count(id) AS waiting
FROM transaction
WHERE status = 1
) AS waiting
INNER JOIN (
SELECT count(id) AS error
FROM transaction
WHERE status = 3
) AS error
INNER JOIN (
SELECT count(id) AS done
FROM transaction
WHERE status = 4
) AS done
INNER JOIN (
SELECT count(id) AS total
FROM transaction
) AS total;
能否請你幫我創造這個查詢?我得到了等待的列,錯誤,完成,總數與所有交易的計數。相反,它應該獲得交易數量WHERE task.id = transaction.task和transaction.status = 1,2,3。
什麼是錯誤的結果,你得到什麼? – skrrgwasme
列等待,錯誤,完成,總計獲得所有交易的計數數量。對於每個任務,它應該獲得事務號WHERE task.id = transaction.task和transaction.status = 1,2,3。 – Romulus