Mysql 连接不相等的 table 字段
Mysql concat unequal table field
为什么我不能 Select 一行 table 具有不相等的 concat 构造?我给你举个例子。
表 1
| id | 面积 |
| 1 | items_labeling_small |
| 2 | items_labeling_big |
表 2
| id | 面积 | 卡特 |
| 1 |小 |标签 |
| 2 |大 |标签 |
SELECT Table1.area FROM Table1, Table2 WHERE Table1.area != CONCAT('items_', Table2.kat, '_', Table2.area)
不必显示任何结果,因为两者都与 concat 结构相匹配。但它们显示在结果中。我不知道为什么..以及如何更改它有效的查询。
显示它们是因为每一行都不匹配,所以你有不匹配的行
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 子句的(旧的)隐式连接语法...使用显式连接语法...
为什么我不能 Select 一行 table 具有不相等的 concat 构造?我给你举个例子。
表 1
| id | 面积 |
| 1 | items_labeling_small |
| 2 | items_labeling_big |
表 2
| id | 面积 | 卡特 |
| 1 |小 |标签 |
| 2 |大 |标签 |
SELECT Table1.area FROM Table1, Table2 WHERE Table1.area != CONCAT('items_', Table2.kat, '_', Table2.area)
不必显示任何结果,因为两者都与 concat 结构相匹配。但它们显示在结果中。我不知道为什么..以及如何更改它有效的查询。
显示它们是因为每一行都不匹配,所以你有不匹配的行
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 子句的(旧的)隐式连接语法...使用显式连接语法...