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