来自2个表的GROUP BY和COUNT的SQL连接结果

时间:2019-06-03 04:39:23

标签: mysql sql

表1(VID是唯一的)

VID|UID
99 | 11
56 | 12
52 | 11
24 | 13
14 | 13

要通过UID计算记录,

SELECT count(*),UID from t1 GROUP by UID
------------
count(*)|UID
       2| 11
       1| 12
       2| 13

表2(这是表1的子集)

VID
99
52
14

要在与表1映射后按UID计算记录

SELECT count(*),uid from t1 WHERE vid in (SELECT vid from t2) group by uid
------------
count(*)|UID
       2|11
       1|13

现在我可以基于第二个结果和1个SQL将这两个结果表连接在一起,结果是:?

t1Count|t2Count|UID
      2|      2|11
      2|      1|13

如果我想加入一个包含UID信息的额外表怎么办?

UID|info
 11|....
 12|....
 13|....
 14|....
 15|....

这样的结果是:?

t1Count|t2Count|UID|info
      2|      2|11 |....
      2|      1|13 |....

1 个答案:

答案 0 :(得分:1)

请尝试以下查询以获得所需的结果。

 DB::table('table_name')->whereBetween('started_at', [$date1, $date2])
  ->orWhereBetween('finished_at', [$date1, $date2])->get();