一个表中的字段根据另一个表的id显示另一个表的其他字段

本文介绍了一种复杂的SQL查询技巧,通过内连接将客户信息表与用户表进行关联,以展示创建者和更新者的用户名,而非ID。此方法适用于需要从多个表中提取详细信息的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表一结构:

ccpm_crm_customer

表二结构: 

sys_user

 

现在根据表一中 CREATED_BY,UPDATED_BY关联sys_user表user_id显示为username

sql:

SELECT
	`OBJECT_SID`,
	`CREATED`,
	`LEADER`,
	su1.username AS `CREATED_BY`,
	`UPDATED`,
	su2.username AS `UPDATED_BY`,
	`ORG_SID`,
	`IS_ACTIVE`,
	`LOCK_VERSION`,
	cc.`NAME` AS `NAME`,
	`CONTACT_SID`,
	`IS_TOP`,
	`PARENT_SID`,
	`IS_VIP` 
FROM
	(
	SELECT
		c.`OBJECT_SID`,
		c.`CREATED`,
		GROUP_CONCAT( su.username SEPARATOR ',' ) AS `LEADER`,
		c.`CREATED_BY`,
		c.`UPDATED`,
		c.`UPDATED_BY`,
		c.`ORG_SID`,
		c.`IS_ACTIVE`,
		c.`LOCK_VERSION`,
		c.`NAME` AS `NAME`,
		c.`CONTACT_SID`,
		c.`IS_TOP`,
		c.`PARENT_SID`,
		c.`IS_VIP` 
	FROM
		ccpm_crm_customer c
		LEFT JOIN ccpm_user_customer cu ON c.OBJECT_SID = cu.customerId
		LEFT JOIN sys_user su ON su.user_id = cu.uid 
	GROUP BY
		c.OBJECT_SID 
	) cc
	INNER JOIN sys_user su1 ON cc.CREATED_BY = su1.user_id
	INNER JOIN sys_user su2 ON cc.UPDATED_BY = su2.user_id

因为表一中两个字段关联表二id字段,所以要inner join两次

这种查询不能使用where判断条件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值