我有一个名为Reports的表,看起来有点像这样:
|--|-------|------|-------------|-----------|------|
|ID|User_ID|Mod_ID|Mod_Timestamp|Mod_Comment|tstamp|
|--|-------|------|-------------|-----------|------|
|0 | 0 | 1 | 1387025342 | XYZBLEH |123123|
|--|-----------------------------------------------|
我还有另一个名为reports_users的表,如下所示:
|--|----|
|ID|Name|
|--|----|
|0 |Damo|
|--|----|
来自Report表的用户ID和Mod_Id都来自Report_Users表中的ID,现在我需要的是有时在Mod_ID列中会有重复项,我想要做的是将这些组合在一起并将它们计为排序重复的计数,所以它看起来像这样:
|--|----|-----|
|ID|Name|count|
|--|----|-----|
|0 |Damo| 16 |
|--|----|-----|
我可以将名称添加到表格中,但我似乎无法对其进行分组或计算它们而不会造成问题,我已经通过内部联接声明完成了此操作,但我似乎无法弄清楚如何做我需要的。如果这里的任何人都可以帮助我,那我就是最棒的。
这是我上面提到的SQL
SELECT * FROM request as request_table INNER JOIN(SELECT name, id as uid from request_user)AS user ON(request_table.Mod_id = user.uid)
此致 达明
答案 0 :(得分:2)
根本不需要子选择:
SELECT reports.ID, reports_users.Name, count(reports.ID) AS count
FROM reports
LEFT JOIN reports_users ON reports.User_ID = reports.ID
GROUP BY reports.ID