我想比较table1
和table2
与指定的列作为字符串,并希望返回不匹配的记录从table1
。MySQL不喜欢查询
它使用其他方式只是'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
相反,我得到所有记录从表1
任何帮助,可以赞赏。
你需要'join'表1至表2试试吧。现在你正在从table1中选择所有东西(目前它不受where子句或table2限制) – RToyo
@RobbieToyota感谢您的快速响应,我尝试了一些连接查询,但得到的结果相同。我会在我的问题中加上这个。 – Bagan
看着你的更新,它看起来不像你已经完成了联合声明。表a中哪列与b.DesignOption对应?你应该有这样的东西:'SELECT [FROM] FROM table1 as JOIN table2 as b ON b.DesignOption = a.CorrespondingColumn'。 – RToyo