MySQL查询SELECT FROM 2表,COUNT最常用

时间:2014-09-06 08:10:07

标签: mysql count group-by

我有这两张桌子,我需要将moset用于办公室。注意:1个办公室可以由超过1个人使用,TableB中的列ido来自TableA

Probaly是group bydesc limit 1

的查询

表A

| ido|  office | guy |
---------------------
|  1 |  office1| guy1|
|  2 |  office2| guy2|
|  3 |  office1| guy3|
|  4 |  office1| guy4|
|  5 |  office5| guy5|
|  6 |  office2| guy6|

表B

 | idb|  vizit  | ido|
 ---------------------
 |  1 |  date   | 4  |
 |  2 |  date   | 2  |
 |  3 |  date   | 5  |
 |  4 |  date   | 6  |
 |  5 |  date   | 1  |
 |  6 |  date   | 6  |

谢谢!

1 个答案:

答案 0 :(得分:0)

你是对的,因为GROUP BY,LIMIT和DESC在这里很有用;它会导致相当直接的查询;

SELECT TableA.office 
FROM TableA
JOIN TableB
  ON TableA.ido = TableB.ido
GROUP BY TableA.office
ORDER BY COUNT(*) DESC
LIMIT 1

它的作用基本上是创建具有所有有效组合的行,计算每个办公室生成的行数。按该计数进行的简单降序将为您提供最常用的办公室。

An SQLfiddle to test with