mysql 一张表的多个字段关联另外一张表

SELECT
vtiger_orderitem.orderid,
	(
		SELECT
			vtiger_users.last_name
		FROM
			vtiger_users
		WHERE
			vtiger_orderitem.signatory = vtiger_users.id
	) AS signatory,
	(
		SELECT
			vtiger_users.last_name
		FROM
			vtiger_users
		WHERE
			vtiger_orderitem.servicer = vtiger_users.id
	) AS servicer
FROM
	vtiger_orderitem
SELECT
	n.orderid,
	m.last_name,
	q.last_name
FROM
	vtiger_orderitem n
LEFT JOIN vtiger_users m ON n.signatory = m.id
LEFT JOIN vtiger_users q ON n.servicer = q.id

原文地址:https://www.cnblogs.com/anxiaoyu/p/8951797.html

时间: 2024-08-27 05:26:42

mysql 一张表的多个字段关联另外一张表的相关文章

超多分析结果表 简单字段关联 生成大宽表 的 初步猜想

业务背景: 1. 广告投放涉及到用户的诸多特征 2. 用户特征通常不在同一个表中 3. 通过各种算法逻辑会产生很多的中间表 4. 各中间表的唯一标志基本为单一字段,通常会员标志或设备标志(两者一般取较新的一对组合使用) 5. 进入算法(或机器学习)前,需要一个统一的大宽表作为入参方便取值 业务解析: 1. 若干(通常10+)结果表 2. 每张表的数据量都很大(千万-亿) 3. 每个表都有同样的唯一标志字段(具体内容不同) 结果表产生过程隐藏条件: 1. 存在一张主表,包含有所有可能的唯一标志 处

mysql如何更新一个表中的某个字段值等于另一个表的某个字段值

update a inner join b on a.bid=b.id set a.x=b.x,a.y=b.y ; 这里使用了case when 这个小技巧来实现批量更新.举个例子: 1 2 3 4 5 6 7 UPDATE categories     SET display_order = CASE id         WHEN 1 THEN 3         WHEN 2 THEN 4         WHEN 3 THEN 5     END WHERE id IN (1,2,3)

超多分析结果表 简单字段关联 生成大宽表 的 并发拓展

年前有些放纵了,一直没有完成该篇的节奏感.推延至今 大数据量面前单机显然是不合适的,所以尝试将前述逻辑 并发化 考虑 以适应 分布式处理. 回溯数据清洗流程, 1.流量数据区间圈定, 2.流量数据按要求筛选聚合 3.各汇总表按唯一标志联合 在初步猜想中,需要一张包含所有唯一标志的主表,这也是减少匹配次数的关键. 主表的产生不应该到流程第三步,也完全没有必要. 清洗流程第二步流量数据聚合的同时,完全可以完成 该主表的去重和排序. 接下来按照 记录总数均匀分发主表数据到个 executor,并记录下

Oracle 验证A表的2个字段组合不在B表2个字段组合里的数据

select id, name from TAB_A t where not exists (select 1 from TAB_B t1 where t.id = t1.id and t.name = t1.name)

SQL语句对于多表联合查询重复字段的特殊语法处理

SQL语句对于多表联合查询重复字段的特殊语法处理 原创 2016年01月13日 14:22:36 5309 [sql] view plain copy SELECT m.*,d_name,r_name,m2.m_account as shangji_account FROM Member m,Member m2,Role r,Depart d WHERE m.m_rid=r.id and m.m_did=d.id and m.m_shangji=m2.id ORDER BY m.id DESC

mysql如果在使用多表连查时,两张或多张表出现相同的字段名的解决办法

多表查询时,mysql语句为: select a.*,b.* from 表A名 as a left join 表B名 as b on a.字段名=b.字段名; 当出现两个相同字段名字时,比如相同字段名为name,就可以a.name as aname,b,name as bname; 语句为: select a.name as aname,b.name as bname from as a left join 表B名 as b on a.字段名=b.字段名; mysql如果在使用多表连查时,两张或

更新同一张表的整列字段

首先需要先把需要更新的整列结果查询出来. 这里记录下mysql时间的函数:DATE_FORMAT( 字段名, '%Y-%m-%d %H:%i:%s' )  第二个参数是要转换的格式,因为我本来的格式中有毫秒. 以下是举例: 转换的sql :SELECT id AS dd, DATE_FORMAT( created, '%Y-%m-%d %H:%i:%s' ) created2 FROM pe_project_list 整条sql: UPDATE pe_project_listINNER JOIN

mysql left join 左连接查询关联n多张表

eft join 左连接即以左表为基准,显示坐标所有的行,右表与左表关联的数据会显示,不关联的则不显示.关键字为left join on. **基本用法如下: select table a left join table b on a.id = b.ta_id** 注意:1??其中on后面关联的字段应该是同一字段(两表关联的外键) 2??由于以左表为基准,左表一条记录如果对应右表多条记录,那查出的数据中右表的数据也只显示一条,如果要都显示,可以用group_contact()将字段用逗号隔开显示

两张表并集求相同字段的和

有两张表a b 每张表里有两个字段都是id numa表的值id  num   b表的值  id  numa    5             b   15b    10            c   20c    15            d   20d    20            e   30求出两张表的结果 用一条sql结果值id  numa   5b   25c   35d   40e   30 SELECT `id`, SUM(`num`) FROM (SELECT * FROM