mysql - 使用 NOT IN 条件左连接两个表

标签 mysql

我试图在使用 MySQL“NOT IN”条件时左连接 2 个表。我遇到的问题是,如果左连接为空,意味着没有左连接的条目,MySQL NOT IN 运算符就不能正常工作。

这是一个示例。

SELECT PLAYERS.*,
TYPES.GUEST_ID

FROM PLAYERS
LEFT JOIN TYPES ON TYPES.GUEST_ID = PLAYERS.GUEST_ID
WHERE PLAYERS.ID = '1' AND TYPES.GUEST_ID NOT IN('1', '2')

由于 TYPES 表中当前没有匹配的行。 NOT IN 运算符不起作用。有什么解决办法吗?

最佳答案

使用IS NULL:

SELECT PLAYERS.*, TYPES.GUEST_ID
FROM PLAYERS
  LEFT JOIN TYPES ON TYPES.GUEST_ID = PLAYERS.GUEST_ID
WHERE TYPES.GUEST_ID NOT IN('1', '2') OR TYPES.GUEST_ID IS NULL

关于mysql - 使用 NOT IN 条件左连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38661860/

相关文章:

mysql - GROUP BY 选择具有每月定期日期的记录

javascript - 从 MySQL 拉取时在 Google map 中显示多个信息框

php - 如果列表中存在特定变量或单词,如何使用 PHP 隐藏 smth

mysql - 在 HasOne 关系中获取关联错误

mysql - 从单个表中仅在一行中添加多行

php - cakePHP 中的 hasMany 组合框

MySQL 无法使用 DECLARE 定义变量

sql - 将重新定义的 SQL 数据从旧应用导入新应用

mysql - 如何处理链接同一实体的多个列

mysql - 简单查询 - 为什么会抛出错误?