我有两张桌子。一个是具有clientID和实体的客户端,另一个是具有clientID和LogonID的LogOnLink。 LogOnLink表可以多次输入相同的clientID。所以我正在尝试运行查询,我在其中搜索实体加入LogonLink表。我遇到的问题是,如果一个实体在logonLink表中20次,我得到的名称返回二十次。我如何制作它,以便它只显示一个实体的一个实例。请记住,可能有类似的实体名称,所以如果我在数据库中有“公司1”和“公司2”,我需要向两家公司展示是否有人在公司中输入。我尝试过做DISTINCT,但它没有通过LogOnLink表中的clientID来区分它。这是我到目前为止所拥有的。
SELECT DISTINCT ll.logonID, entity
FROM clients c
INNER JOIN LogOnsLink ll ON ll.clientID = c.clientID
WHERE c.entity LIKE '%Com%'
ORDER BY entity
Clients Table
------------------------------------
clientID entity
2 Company A
8 Company B
43 Company C
LogOnLinks Table
------------------------------------
LogonLinkID clientID LogonID
4 2 3
5 2 7
21 8 20
6 2 9
3 8 10
45 43 3
答案 0 :(得分:2)
您需要对来自LogOnsLink的数据执行某种聚合,否则您将总是获得20行......
试试这个
SELECT entity, COUNT(ll.logonID) AS MaxlogonIDs
FROM clients c
INNER JOIN LogOnsLink ll ON ll.clientID=c.clientID
WHERE c.entity LIKE '%Com%'
GROUP BY entity
ORDER BY entity
或
SELECT DISTINCT entity
FROM clients c
INNER JOIN LogOnsLink ll ON ll.clientID=c.clientID
WHERE c.entity LIKE '%Com%'
ORDER BY entity
答案 1 :(得分:0)
试试这个
SELECT ll.logonID, DISTINCT(entity)
FROM Clients c INNER JOIN LogOnsLink ll
ON ll.clientID=c.clientID
WHERE c.entity LIKE '%Com%'
ORDER BY entity