mysql - 未识别的列是新创建的
问题描述
不明列 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
解决方案
您需要使用子查询,因为您想将两列的数据合并为一个(基于逻辑),然后想与另一个表连接以获取新列。请检查以下查询是否适合您-
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
推荐阅读
- spring - 无法使用 Spring 运行 JUnit 测试
- elasticsearch - 在 Elasticsearch 的所有可用索引中搜索特定文档 ID
- php - PHP CodeIgniter 多个 LEFT OUTER 加入查询
- javascript - 下拉项 onClick 未正确显示叠加层
- terminal - 如何从终端打开 2 个铬窗?
- mysql - 尽管我已经有一个 UNIQUE 列,但我应该使用自动增量主键吗?
- assembly - Kernel.c 没有执行完整的代码 [操作系统从头开始]
- javascript - 如何在 sequelize(V5) 中使用 IF() 条件
- javascript - 如何将java脚本变量分配给PHP变量
- java - Android中的蓝牙通信无法获取消息