mysql - 检查值是否仅存在于第一个表中而不存在于第二个表中

标签 mysql sql mariadb

我有两个 SQL 表“user”和“entries”。

我只想用一个查询检查用户是否存在于第一个表“user”中,以及用户是否已在表“Entries”中输入条目。

我想做一些类似评级系统的东西。其中用户应该存在于表“user”中并且表“entries”中没有条目。因为每个用户只能输入一次。

是否可以仅使用一个查询来完成此操作,我该怎么做?

我只知道如何通过两个查询来做到这一点

SELECT COUNT(*) amount FROM user

并且

SELECT COUNT(*) quantity FROM entries WHERE user_id = $userID

最佳答案

您应该使用“NOT EXISTS”运算符:

SELECT id FROM user
WHERE id = $userID
AND NOT EXISTS (SELECT * FROM entries where user_id = $userID);

仅当用户存在于表“user”中并且表“entries”中没有条目时,它才会返回一行。

关于mysql - 检查值是否仅存在于第一个表中而不存在于第二个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46376608/

相关文章:

MySQL:计算两个字段

php - mySQL 语句的第一个词不能是 DELETE 或 UPDATE

c# - Serenity-将表单中的值添加到 2 个表中

sql - 计算出重叠 er 数据库中的总人数

转换时区选择过滤器之间的Mysql

mysql - SQL self join中如何让相同的字段不出现两次?

mysql - 在 Doctrine2 的选择中使用比较作为别名

mysql - 使用 MySQL 记录所有表上的所有事件

sql - 我需要显示来自 json 列表的数据,每个键都作为单独的列

mysql - COUNT 同一列的多种类型