1

(My)SQLクエリに問題があります。私のDBには2つのテーブルがあります。1つはkfz_typenと呼ばれ、もう1つはkfz_temp2と呼ばれます。kfz_temp2テーブルのすべてのエントリを取得する必要があります。ktyp(整数フィールドのみ)はkfz_typenテーブルにありません。

 SELECT * FROM kfz_temp2
 WHERE kfz_temp2.KType NOT IN (SELECT DISTINCT kfz_typen.ktyp FROM kfz_typen)

私の意見では、上記のこのクエリは、私が望むことを正確に実行する必要があります。しかし、そうではありません!MySQLサーバーから空の結果が返されます。

クエリに「NOT」がないと、両方のテーブルにあるエントリが取得されるため、マッチングは機能します。

では、上記のクエリの何が問題になっていますか?

4

2 に答える 2

2

これは機能しますか?

SELECT t2.* FROM kfz_temp2 t2
 LEFT JOIN kfz_typen tn ON t2.KType = tn.ktyp
WHERE tn.ktyp IS NULL

結果をグループ化する必要があるかもしれません。

最初のクエリが機能しない理由はわかりませんが、これでも同じことができると思います。

于 2012-07-21T15:40:21.927 に答える
-2

明確に削除し、それがあなたに役立つことを願っています。

于 2012-07-21T11:13:37.383 に答える