こんにちは、データベースでクエリを実行しようとしていますが、このエラーが何度も発生します。クエリに何か問題がありますか?
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and not in (SELECT *
FROM `data`
WHERE `Category` LIKE 'beauty%')
ありがとう
こんにちは、データベースでクエリを実行しようとしていますが、このエラーが何度も発生します。クエリに何か問題がありますか?
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and not in (SELECT *
FROM `data`
WHERE `Category` LIKE 'beauty%')
ありがとう
問題は次の領域にあります。
ではない
正しい構文は
and not <field name> in (Select <INDIVIDUAL FIELD> from ...)
すべてのカウントを選択している where 句でサブクエリを実行することはできません (*) サブクエリで個々の列を 1 つ選択し、それをメイン クエリの 1 つの列に関連付ける必要があります。
したがって、完全なステートメントは次のようになります
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and `Category` not in (SELECT Category
FROM `data`
WHERE `Category` LIKE 'beauty%')
と同等です
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and `Category` NOT LIKE 'beauty%'
これははるかに読みやすいIMOです
WHERE 句の IN ステートメントでサブクエリを使用する方法の詳細については、http://beginner-sql-tutorial.com/sql-subquery.htmを参照してください。
下にスクロールして、記事の「相関サブクエリ」を見つけます。
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and `Category` not in
(SELECT `Category`
FROM `data`
WHERE `Category` LIKE 'beauty%')
クエリは次のようになります。
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%'
AND `Category` NOT IN
(
SELECT `Category`
FROM `data`
WHERE `Category` LIKE 'beauty%'
)
とにかく、クエリを次のように書き直します。
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%'
AND `Category` NOT LIKE 'beauty%'
なぜここでサブクエリが必要なのですか? これはあなたのクエリでなければなりません
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and `Category` not LIKE 'beauty%'
SELECT * FROM `data`
WHERE `Category` LIKE '%beauty%'
and `Category` not in (SELECT *
FROM `data`
WHERE `Category` LIKE 'beauty%')
...そしてCategory
?
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and `Category` not in (SELECT *
FROM `data`
WHERE `Category` LIKE 'beauty%')