为什么我不能选择具有不相等concat结构的表的行?我给你看一个例子。
| id | 区域 |
| 1 | items_labeling_small |
| 2 | items_labeling_big |
| id | 区域 | kat |
| 1 |小|标签|
| 2 |大|标签|
从Table1和Table2中选择Table1.area,在其中Table1.area!= CONCAT('items_',Table2.kat,'_',Table2.area)
不必显示任何结果,因为两者都与concat结构匹配。但是它们显示在结果中。我不知道为什么。以及如何更改它的查询。
答案 0 :(得分:1)
之所以显示它们是因为每一行都不匹配,所以您有不匹配的行
SELECT Table1.area
FROM Table1
INNER JOIN Table2 ON Table1.area != CONCAT('items_', Table2.kat, '_', Table2.area)
您可能想要一个不在
SELECT Table1.area
FROM Table1
where Table1.area NOT IN (
SELECT CONCAT('items_', Table2.kat, '_', Table2.area)
FROM Table2
)
并且建议您不要使用基于where子句的(旧)隐式联接sintax ...使用显式联接sintax ..