首页 > 解决方案 > 未识别的列是新创建的

问题描述

不明列 uu

SELECT DISTINCT *,
        (CASE  c.userid WHEN '1' THEN c.user2id ELSE c.userid END) as uu 
FROM chats as c INNER JOIN  users as e ON   c.uu = e.id

标签: mysqlsqlsql-server

解决方案


您需要使用子查询,因为您想将两列的数据合并为一个(基于逻辑),然后想与另一个表连接以获取新列。请检查以下查询是否适合您-

SELECT 
DISTINCT *
FROM
(
    SELECT *,
    CASE  c.userid 
        WHEN '1' THEN c.user2id 
        ELSE c.userid 
    END uu 
)A
INNER JOIN  users AS u 
ON   A.uu = u.id 

因为您想将两列的值合二为一,然后想要基于新列加入另一个表。请检查以下查询是否适合您-

您能否检查以下脚本-

SELECT DISTINCT  * 
FROM users   A
INNER JOIN chats   B 
ON A.id = CASE WHEN b.userid = '1' THEN B.user2id ELSE B.userid END

推荐阅读