用于在另一个表中查找具有特定值的用户的SQL查询

时间:2016-03-10 11:12:36

标签: mysql sql

概述

我有两张表 - tmc_userstmc_user_usergroup_map

tmc_users中,有一个user_id列表,tmc_usergroup_map每个user_id可以与多个group_id相关联。

我正在尝试找到user_id group_id 12group_id为17的所有group_id

每个用户都可以是两者的成员。

当前查询

这是获取与SELECT `id`, LTRIM(RTRIM(`name`)), COUNT(`id`) AS `total` FROM `tmc_users` u LEFT JOIN `tmc_user_usergroup_map` g ON u.`id` = g.`user_id` WHERE g.`group_id` = 12 ORDER BY LTRIM(RTRIM(`name`)) ASC 12关联的所有用户的查询,该用户返回总共1439行:

group_id

新查询

我正在尝试过滤 SELECT `id`, LTRIM(RTRIM(`name`)), COUNT(`id`) AS `total` FROM `tmc_users` u LEFT JOIN `tmc_user_usergroup_map` g ON u.`id` = g.`user_id` WHERE g.`group_id` != 17 AND g.`group_id` = 12 ORDER BY LTRIM(RTRIM(`name`)) ASC 17中的用户:

.accom-img

然而,这会返回相同的行数--1439 - 而实际用户数应为1353.

如何在一个查询中完成此工作?

1 个答案:

答案 0 :(得分:1)

您可以使用public class Single { private static Single instance; private Single() { } static Single() { instance = new Single(); } public static Single Instance { get { return instance; } } }

sed 's/^--MW //' file.txt