mysql concat不等表字段

jjjwad0x  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(325)

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

表1

|id |区域|
|1 |物品|标签|小|
|2 |物品|标签|大|

表2

|id |区域| kat |
|1 |小|标签|
|2 |大|标签|
从table1中选择table1.area,table2中table1.area!=concat('项目',table2.kat,',table2.area)
无需显示结果,因为两者都与concat结构匹配。但结果却显示出来了。我不知道为什么。。以及如何更改查询。

yfjy0ee7

yfjy0ee71#

显示它们是因为每一行与另一行不匹配,所以您有不匹配的行

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子句使用(旧的)implict join sintax…使用explicit join sintax。。

相关问题