我想将指定列的table1
和table2
与字符串进行比较,并想从table1
返回不匹配的记录。
当我仅使用'like'
并返回匹配结果时,它的效果很好。
但是我真的希望获得无与伦比的记录。
这是样本表
table 1 ---------------------------------- No. DesignID 1 c12345 2 c16 3 c20Table 2 ---------------------- No. DesignOption 1 Online-c12345-print 2 Online-c16-proof
$db->fetchallColumn(SELECT distinct(a.DesignID) FROM table1 as a, table2 as b where b.DesignOption not like CONCAT('%', a.DesignID, '%'));
与加入的例子$db->fetchallColumn(SELECT distinct(a.DesignID) FROM table1 as a inner join table2 as b on b.DesignOption not like CONCAT('%', a.DesignID, '%'));
预期结果:c20
相反,我从table1获取所有记录
任何帮助,不胜感激。最佳答案
假设您的查询有效,只需使用外部联接:
SELECT DISTINCT a.DesignID FROM table1 a left join table2 b ON b.DesignOption like CONCAT('%', a.DesignID, '%') WHERE b.DesignOption IS NULL;
请注意,DISTINCT
不是函数。 SQL运算符是SELECT DISTINCT
。不要使用括号-除非您有理由这样做。