Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
子句查询中的MySQL_Mysql_Inner Join_In Clause - Fatal编程技术网

子句查询中的MySQL

子句查询中的MySQL,mysql,inner-join,in-clause,Mysql,Inner Join,In Clause,简单地说,我想找到一个解决方案来测试一个列值是否存在于另一个列值中,或者是否存在于表之间。我自然而然地跳到了“notin子句”,但我也发现我不能在括号b中使用列名称 SELECT * FROM tbl1_name a INNER JOIN tbl2_name ON a.id = b.id WHERE a.name NOT IN (b.full_name); 我可以用什么条款来实现我想要的东西等。你可以简单地做 SELECT * FROM

简单地说,我想找到一个解决方案来测试一个列值是否存在于另一个列值中,或者是否存在于表之间。我自然而然地跳到了“notin子句”,但我也发现我不能在括号b中使用列名称

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;


您可以在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);

尽可能避免子查询!在检查其他值或字段列表中是否存在值时,如果有更简单的解决方案,为什么建议使用它们。这个解决方案只是检查a.name是否等于b.full_name。@user2505513没有得到任何反馈,这个答案对你有用吗?如果答案解决了您的问题,请将其标记为已接受。
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);