只有当另一个名为“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)。有什么想法吗?
答案 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
应该有效。在内连接之后,当两个(!)表在开头只有一个记录时,只能得到一行。