2016-09-21 13 views
0

クエリとは異なるすべての行を返すクエリを作成しようとしています。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

あなたは、サブセレクトで複数のフィールドを返すことはできません...は、1つのフィールドをagains? WHEREフィールドを使用しない(SELECTフィールド.. WHERE ..) –

+0

一致する場合は、スキャンテーブルとカラム以外の文字列内の部分文字列 – scaisEdge

答えて

0

表との照合にLIKEを使用することはできません。ネストされたクエリは、複数の列を含むテーブルを返します。

'件名'の列をテーブルと照合しようとしています。

あなたが必要とするクエリがある:5つのフィールドを比較するのmysqlべきか

SELECT * 
FROM EmailHistory 
WHERE Subject NOT IN 
(
SELECT Subject FROM EmailHistory JOIN Checks ON EmailHistory.Subject LIKE CONCAT( '%', Checks.Check, '%') 
) 
関連する問題