使用INSTR排除记录的MySQL子查询

时间:2015-02-15 05:49:32

标签: mysql sql subquery

我正在尝试创建一个MySQL子查询,它将从table1中检索记录,但前提是table1中的记录不存在于table1记录中的任何位置。这是我的架构:

CREATE TABLE table1 (
  CompanyName VARCHAR(20)
);

CREATE TABLE table2 (
  ExcludeName VARCHAR(20)
);

INSERT INTO table1 VALUES
( 'COMPANY AAA 111' ),
( 'COMPANY BBB 222' ),
( 'COMPANY CCC 333' ),
( 'COMPANY DDD 444' ),
( 'COMPANY EEE 555' );

INSERT INTO table2 VALUES
( 'BBB' ),
( 'DDD' );

这是我的SQL:

SELECT DISTINCT t1.CompanyName 
   FROM table1 t1
   JOIN table2 t2
       ON INSTR(t1.CompanyName, t2.ExcludeName ) = 0;

如此SQL fiddle所示,我得不到正确的结果。我希望查询仅返回COMPANY AAA 111COMPANY CCC 333COMPANY EEE 555,而是查询返回所有记录。为什么不排除BBBDDD记录?

0 个答案:

没有答案