1

我对(My)SQL 查询有一些问题。在我的数据库中,我有两个表。一个叫kfz_typen,另一个叫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

删除 distinct 然后我希望它对你有帮助。

于 2012-07-21T11:13:37.383 回答