如何加入这两个表?

时间:2012-11-23 06:07:35

标签: mysql select

我有:

TABLE: USERS
UID | NAME
1   | Bob
2   | John

我有:

TABLE: HITS
HITID | UID
1     | 1
2     | 2
3     | 2
4     | 1
5     | 2
6     | 2

我想:

UID | HITS
1   | 2
2   | 4

看起来很简单,但我似乎无法做到这一点?

5 个答案:

答案 0 :(得分:4)

试试这个:

SELECT UID, COUNT(UID) HITS FROM HITS 
GROUP BY UID;

答案 1 :(得分:2)

这可能会帮助你

DECLARE @USERS TABLE(UID INT, NAME VARCHAR(20))
INSERT INTO @USERS (UID,NAME) VALUES ('1','Bob'),('2','John')

DECLARE @HITS TABLE(HITID INT,UID INT)
INSERT INTO @HITS (HITID,UID) VALUES('1','1'),('2','2'),('3','2'),('4','1'),('5','2'),('6','2')

如果要使用USERS表和HITS表

,请使用JOIN
SELECT U.UID,COUNT(H.HITID) AS HITS FROM @USERS AS U INNER JOIN @HITS AS H ON U.UID = H.UID GROUP BY U.UID

或使用简单查询如果您只想使用HITS表

SELECT UID, COUNT(UID) HITS FROM @HITS GROUP BY UID 

我也在这里创建了Temp表。

答案 2 :(得分:1)

SELECT b.UID, COUNT(b.UID) HITS FROM HITS a, USERS b
WHERE a.UID=b.UID
GROUP BY UID 

这应该有效

答案 3 :(得分:1)

这可以解决问题

SELECT H.UID, COUNT(*) AS 'HITS'
FROM HITS H
GROUP BY H.UID

答案 4 :(得分:0)

如果您想拥有用户名,那么您需要加入

SELECT  a.Name, COUNT(*) totalCount
FROM    users a
        INNER JOIN HITS b
            ON a.UID = b.UID
GROUP BY a.UID
相关问题