我有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