MySQL - 选择连接表中的count等于1的行

时间:2018-02-21 16:16:12

标签: mysql select count

只有当另一个名为“web_users_branches”的连接表的行等于1时,我才需要从表“web_users”中选择行。

我现在拥有的:

SELECT id, code from web_users 
JOIN
(
SELECT client_code
  FROM web_users_branches
HAVING COUNT(*) = 1
) as t2
ON web_users.code = t2.client_code;

我得到空的结果。

数据库示例:

网友表:

id code
1  0001
2  0002
3  0003

Web用户分支表:

id  client_code
1   0001
2   0001
3   0002
4   0003
5   0003

现在在此查询之后,我应该只获得client_code为0002的用户,因为所有其他用户client_code计数不等于1(有x2 0003和x2 0001)。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我认为你只想在子查询中使用unsigned char szAddrStr[256]; struct sockaddr_in addrLcl; sock_getsockname(so, (struct sockaddr *)&addrLcl, sizeof(addrLcl)); inet_ntop(AF_INET, &addrLcl.sin_addr, (char *)szAddrStr, sizeof(szAddrStr)); printf("IP String <%s> Port Hex:<%X>", szAddrStr, ntohs(addrLcl.sin_port));

group by

答案 1 :(得分:0)

SELECT id, code 
FROM web_users_branches as t1
JOIN  web_users as t2
ON t2.code = t1.client_code
HAVING COUNT(*) = 1

应该有效。在内连接之后,当两个(!)表在开头只有一个记录时,只能得到一行。