Mysql 如何查询两个表以获取尚未';你没有投票吗?

Mysql 如何查询两个表以获取尚未';你没有投票吗?,mysql,sql,database,Mysql,Sql,Database,我一直在做这个sql查询……我有两个表,一个是所有用户的表,另一个是每个用户的投票表。 我想检查尚未投票的用户。 我尝试了一些像这样的,但不起作用 usuarios table ---------------------- | id | username | ---------------------- votes -------------------------------------------- | id | user | mes | ano

我一直在做这个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表)中获取不在我的投票表上的用户

只需使用左连接即可

SELECT DISTINCT a.username FROM usuarios a
LEFT JOIN votes b 
ON a.id = b.id
WHERE b.user is null

您的描述转换为使用“不存在”的相关子查询:

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
 )

根据SQL版本的不同,您将有如下内容。MS SQL将是这样的,但SQL的其他版本将非常类似:

SELECT * 
FROM USARIOS A
  LEFT JOIN
  VOTES B
  ON A.ID = B.ID
WHERE B.USER IS NULL

你能给我们看一些数据吗?一行或两行你想得到的和你现在得到的…谢谢很多朋友的帮助,谢谢你让我知道我必须做什么类型的查询…一些新的学习