我发现我不知道如何在SQL Server中对查询结果进行分组。我有三个表的SQL Server 2005:
域
- id
- name
实体:
- domain_id
- user_id
用户:
- id
- login
因此,它是第三个表中两个表之间的通用关系,其中几个域可能与一个用户有关。
T-SQL查询:
SELECT domain.name, users.login
FROM domain, entity, users
WHERE domain.id = entity.domain_id AND entity.user_id = users.id
GROUP BY users.login, domain.name
返回:
+------+-------+
| name | login |
+------+-------+
| dom1 | user1 |
| dom4 | user1 |
| dom5 | user1 |
| dom2 | user2 |
| dom3 | user3 |
+------+-------+
我的问题是如何创建返回与MySQL相同的T-SQL查询:
SELECT domain.name, user.login
FROM domain, entity, user
WHERE domain.id = entity.domain_id AND entity.user_id = user.id
GROUP BY user.login
+------+-------+
| name | login |
+------+-------+
| dom5 | user1 |
| dom2 | user2 |
| dom3 | user3 |
+------+-------+
答案 0 :(得分:2)
创建一个返回与MySQL
相同的MS SQL(和大多数标准实现)SELECT MAX(domain.name), user.login
FROM domain, entity, user
WHERE domain.id = entity.domain_id AND entity.user_id = user.id
GROUP BY user.login
在这两种环境中,FROM / WHERE连接更好地表示为
FROM domain
INNER JOIN entity
ON domain.id = entity.domain_id
INNER JOIN user
ON entity.user_id = user.id