为什么这个SQL查询对我不起作用?

时间:2012-07-21 11:05:34

标签: mysql

我的(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"在Query中,我得到了两个表中的条目,因此匹配确实有效。

那么上面的查询有什么问题?

2 个答案:

答案 0 :(得分:2)

这会有用吗?

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

您可能需要对结果进行分组。

我不确定为什么第一个查询不起作用,但我相信这也是一样的。

答案 1 :(得分:-2)

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