查询没有特定值的所有ID

时间:2017-07-26 17:22:06

标签: sql postgresql

我的桌子看起来像这样:

user_id    group_id
   1          1
   1          2
   1          3
   1          4
   2          1
   2          2
   3          3
   3          4
   4          3
   4          4

如何查询不在组1中的所有user_id。在此示例中,结果为3和4.

3 个答案:

答案 0 :(得分:2)

以下是使用addon_l10n()function addon_l10n(){ load_plugin_textdomain( "addon", false, dirname(plugin_basename( __FILE__ )).'/languages/'); } add_action('plugins_loaded','addon_l10n'); 子句

的一种方法
Group BY

答案 1 :(得分:2)

以下是使用左连接执行此操作的方法:

select distinct user_id
from a_table_you_did_not_name base
left join a_table_you_did_not_name g1 on base.user_id = g1.user_id and g1.group_id = 1
where g1.user_id is null

在这里你做一个左连接,然后“查看”没有加入的东西。由于连接需要存在group_id = 1,因此这将提供所需的结果。

答案 2 :(得分:0)

使用NOT EXISTS运算符和dependend子查询

SELECT DISTINCT user_id
FROM Table t
WHERE NOT EXISTS (
   Select * FROM Table t1
   WHERE t1.user_id = t.user_id
     AND t1.group_id = 1
)

您也可以使用NOT IN:

SELECT DISTINCT user_id
FROM Table t
WHERE user_id NOT IN (
   SELECT user_id FROM table
   WHERE group_id = 1
)