mysql - 如何查询两个表以获取未投票的用户?

标签 mysql sql database

我一直在执行此 sql 查询....我有两个表,一个包含我的所有用户,另一个包含每个用户的投票。 我想检查尚未投票的用户。 我正在尝试类似的方法,但没有用。

usuarios table 
----------------------
| id      | username |
----------------------

votes 
--------------------------------------------
|  id     | user     | mes       | ano     |



SELECT DISTINCT a.username 
FROM usuarios a
     , votes b 
WHERE a.username != b.user 
AND b.ano = 2019 
AND b.mes = 11


on my usuarios table i hvae 20 entries.

1 | user1
2 | user2
........

on my votes table 
1 | user1 | 11 | 2019

通过查询,我只想从(usuarios 表)获取不在我的投票表中的用户;

最佳答案

您的描述转换为使用 NOT EXISTS 的相关子查询:

SELECT a.username 
FROM usuarios a
WHERE NOT EXISTS
 (
   SELECT *
   FROM votes b 
   WHERE a.username = b.user -- no vote from this user
     AND b.ano = 2019        -- in this year
     AND b.mes = 1           -- and month
 )

关于mysql - 如何查询两个表以获取未投票的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58981307/

相关文章:

mysql - 为什么 MySQL Workbench 显示与 known_hosts 相关的连接错误?

php - db codeigniter 的下拉值

sql - 在记录水平上标记差异

php - Mysql定义一个列名,由子内部查询从其他表中选择

mysql - SQL select查询顺序通过添加两个字段表现

Python mysql - cursor.close() db.close() 函数

MySQL - 求和,但仅当所有条件满足时

sql - 您可以在 PostgreSQL 中将表权限从一个表复制到另一个表吗?

sql - 如何查询从表 A 或表 B 中获取值?

mysql - 除了简单的 0 或 1 之外,保存 MySQL 表中记录状态的最佳方法是什么?