Mysql 如何查询两个表以获取尚未';你没有投票吗?
我一直在做这个sql查询……我有两个表,一个是所有用户的表,另一个是每个用户的投票表。 我想检查尚未投票的用户。 我尝试了一些像这样的,但不起作用Mysql 如何查询两个表以获取尚未';你没有投票吗?,mysql,sql,database,Mysql,Sql,Database,我一直在做这个sql查询……我有两个表,一个是所有用户的表,另一个是每个用户的投票表。 我想检查尚未投票的用户。 我尝试了一些像这样的,但不起作用 usuarios table ---------------------- | id | username | ---------------------- votes -------------------------------------------- | id | user | mes | ano
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
你能给我们看一些数据吗?一行或两行你想得到的和你现在得到的…谢谢很多朋友的帮助,谢谢你让我知道我必须做什么类型的查询…一些新的学习