mysql concat不相等表字段

时间:2018-10-07 19:14:28

标签: php mysql select concat

为什么我不能选择具有不相等concat结构的表的行?我给你看一个例子。

表1

| id | 区域 |

| 1 | items_labeling_small |

| 2 | items_labeling_big |

表2

| id | 区域 | kat |

| 1 |小|标签|

| 2 |大|标签|

  

从Table1和Table2中选择Table1.area,在其中Table1.area!= CONCAT('items_',Table2.kat,'_',Table2.area)

不必显示任何结果,因为两者都与concat结构匹配。但是它们显示在结果中。我不知道为什么。以及如何更改它的查询。

1 个答案:

答案 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 ..