mysql - 获取具有特定用户 ID 的另一个表中不存在的记录

标签 mysql sql

我有这张 table (a)

还有这张表 (b)

现在我必须获取 A 中不存在于 B 中的所有记录(a.id 不作为 b 出现) .idDomanda),并且其中 B.idUser 不是 1。所以在这种情况下,它应该从 a 返回仅 id 2,但它返回 1 和 2。

这是我的查询

SELECT a.* FROM a LEFT JOIN b ON a.id=b.idDomanda WHERE ( b.idUser <> 1 OR b.idUser IS NULL ) GROUP BY a.id

最佳答案

您想要将 b 上的条件移至 on 子句:

SELECT a.*
FROM a LEFT JOIN
     b
     ON a.id = b.idDomanda and b.idUser <> 1
WHERE b.idUser IS NULL
GROUP BY a.id;

group by 建议您可能需要使用 notists 来代替:

select a.*
from a
where not exists (select 1
                  from b
                  where a.id = b.idDomanda and b.idUser <> 1
                 );

关于mysql - 获取具有特定用户 ID 的另一个表中不存在的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27639358/

相关文章:

mysql - 在 Mysql 语句中运行子查询

php - 网格不显示在自定义 magento 模块中

sql - Teradata 和 HIVE 之间的字符串匹配存在差异

sql - PostgreSQL 函数中的 psql 变量是否有任何转义语法?

php - 命令不同步;你现在不能运行这个命令

mysql - 迁移 Yosemite 后启动 MySql

Mysql:获取所选时间之间的小时数

php - 从 PHP 向 MySql 插入日期和时间值

c# - 实现休眠。类+抽象基类

sql - 具有字符串路径的分层数据 - 查询节点,获取所有父节点及其节点的第一级