我有3代表这样计数联接和1复合主键
SecretAgents
| id | name |
|----|------|
| 1 | A |
| 2 | B |
Victims
| id | name | agent_id |
|----|------|----------|
| 1 | Z | 1 |
| 2 | Y | 1 |
| 3 | X | 2 |
Data
| id | keys | values | victim_id | form_id |
|----|------|--------|-----------|---------|
| 1 | a1 | x | 1 | 1 |
| 2 | a2 | xx | 1 | 2 |
| 3 | a3 | xxx | 2 | 1 |
| 4 | a5 | xxx | 1 | 1 |
我得的形式的计数(这里victim_id和form_id是复合主键),把计数每个代理人的受害者。
我已经尝试了这个任何2表与左连接和组,但我不能够实现在一起。如果任何人都可以慷慨地提供了一个指针/解决方案,这将是超真棒..
编辑1:查询
这是绝对不正确的查询,但不管怎么说
SELECT count(DISTINCT v.id) as victimcount, `sa`.`username`, `sa`.`id`, count(DISTINCT d.form_id) as submissions
FROM `SecretAgents` as `sa`
LEFT JOIN `Victims` as `v` ON `v`.`agent_id`=`sa`.`id`
LEFT JOIN `Data` as `d` ON `d`.`victim_id`=`v`.`id`
GROUP BY `v`.`agent_id`
ORDER BY `sa`.`id` ASC
受害人数是正确的,但提交数量变得错误。试过很多其他事情太多,但是这是最相关的...
感谢
告诉我们你的疑问? – Alex
我已经尝试了很多方法,它们都不是正确的,但我仍然会粘贴错误的查询。也许有人可能会得到我缺少的观点... – Arcanyx