MySQL IN 子句查询



简单地说,我想找到一种解决方案来测试一个列值是否在表中退出另一个列值。我自然而然地跳到了"NOT IN 子句",但我也发现我不能在括号内使用列名(b.full_name)

SELECT 
    * 
FROM 
    tbl1_name a 
INNER JOIN 
    tbl2_name 
    ON a.id = b.id 
WHERE 
    a.name NOT IN (b.full_name);

可以使用什么条款来实现我正在寻找的东西等。

你可以简单地做

SELECT * FROM tbl1_name a
INNER JOIN tbl2_name ON a.id = b.id
WHERE a.name <> b.full_name;

IN关键字通常用于检查多个值示例

NOT IN ('A', 'B');

NOT IN (subquery);

您可以在 not in 子句之后使用子查询,并从表 b 中选择所有名称。 希望它能解决您的问题。

Select * from table1 a inner join table2 b 
on a.id=b.id 
where a.name not in
(Select names from table2)

您可以使用子查询执行此操作,方式如下:

SELECT * FROM tbl1_name a
WHERE a.name IN (SELECT b.full_name FROM tbl2_name b WHERE a.id = b.id);

相关内容

  • 没有找到相关文章

最新更新