MySQL - 获得不匹配的结果

时间:2016-09-21 20:38:54

标签: php mysql

我正在尝试构建一个查询,该查询将返回与查询不同的所有行。

我无法让它发挥作用。

查询是:

SELECT  *
FROM  EmailHistory
WHERE Subject not like
(
SELECT Date, Subject, Sender, Checks.Check FROM EmailHistory JOIN Checks ON EmailHistory.Subject LIKE CONCAT(  '%', Checks.Check,  '%' )
)

所以基本上我想从EmailHistory获取所有行,这是我在运行时无法获得的:

SELECT Date, Subject, Sender, Checks.Check FROM EmailHistory JOIN Checks ON EmailHistory.Subject LIKE CONCAT(  '%', Checks.Check,  '%' ) 

当我尝试运行查询时出现以下错误:#1241 - 操作数应包含1列

查询

SELECT Date, Subject, Sender, Checks.Check FROM EmailHistory JOIN Checks ON EmailHistory.Subject LIKE CONCAT(  '%', Checks.Check,  '%' ) 

正在按预期工作,我查询主题与我在表Checks中检查的字段匹配的所有查询。

1 个答案:

答案 0 :(得分:0)

您无法使用LIKE与表格匹配。嵌套查询返回一个包含多列的表。

您正尝试将“主题”列与表格匹配。

您需要的查询是:

SELECT  *
FROM  EmailHistory
WHERE Subject NOT IN
(
SELECT Subject FROM EmailHistory JOIN Checks ON EmailHistory.Subject LIKE CONCAT(  '%', Checks.Check,  '%' )
)