使用!=和ANY
我有以下查询(MySQL):
SELECT col1, col2 FROM database1.table 
  ->WHERE col3 != ANY(SELECT col1 FROM database2.table) 
  ->ORDER BY this, that;
我希望这可以让我从database1中的表中选择col1和col2,其中col3(仍在database1中)与database1中的表中的col1不等于任何内容。
自然,这不会工作,因为SELECT col1 FROM database2.table返回多个行,所以如果等于row1,那么它不等于row2,所以它仍然返回。
有关如何以正确的方式做到这一点的想法?
  使用NOT IN 
SELECT col1,col2 FROM database1.table - > WHERE col3 NOT IN(SELECT col1 FROM database2.table) - > ORDER BY this,that;
  但请记住,subselect没有在MySQL中进行优化,并且如果database1.table中有很多记录,这将会很慢。  更快的方法是使用JOIN - 在SO上有很多例子 
WHERE col3 NOT IN (SELECT col1 FROM database2.table)
你可以使用NOT IN运算符来表示这个SELECT col1,col2 FROM database1.table - > WHERE col3 NOT IN(SELECT col1 FROM database2.table) - > ORDER BY this,that;
链接地址: http://www.djcxy.com/p/75325.html上一篇: Using != with ANY
