SQL数据表两个字段关联同一张数据表

数据表temp结构

-- Table "temp" DDL

CREATE TABLE `temp` (
  `page_id` bigint(20) DEFAULT NULL,
  `section_id` bigint(20) DEFAULT NULL,
  `visit_category_id` bigint(20) DEFAULT NULL,
  `cart_category_id` bigint(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

数据表category结构

-- Table "category" DDL

CREATE TABLE `category` (
  `category_id` bigint(20) DEFAULT NULL,
  `category_name` varchar(128) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

业务需求

关联temp表和category表,取出visit_category_id和cart_category_id对应的category_name

解决方案

select a.page_id,
a.section_id,
a.visit_category_id,
b.category_name,
a.cart_category_id,
c.category_name
from temp a
left outer join category b on (a.visit_category_id=b.category_id)
left outer join category c on (a.cart_category_id=c.category_id);

查询结果

时间: 2024-08-23 21:31:45

SQL数据表两个字段关联同一张数据表的相关文章

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

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

创建表、加字段注释、插入数据

create table yqdz_ycfs (id VARCHAR2(1),des NVARCHAR2(70)); 添加注释: COMMENT ON COLUMN yqdz_ycfs.id IS '预计抄表方式编码'; COMMENT ON COLUMN yqdz_ycfs.des IS '预计抄表方式描述'; 插入数据: --- 向YQDZ_YCFS(预抄方式)表中插入预置数据 insert into yqdz_ycfs(id,des)values('1','实抄'); insert int

交换数据表两个字段值 | SQL

UPDATE temp_ent_lyew t1,temp_ent_lyew t2 SET t1.latitude=t1.longitude,t2.longitude=t2.latitude where t1.latitude is not null and t1.longitude is not null and t2.latitude is not null and t2.longitude is not null and t1.latitude !='' and t1.longitude !

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

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

sql 语句 查询两个字段都相同的方法

这是替代方法 先使用着 select * from ofgroup where groupId in (select groupId from ofgroup where  uid ='".$_GET['value']."' and useraid='0') groupid定位死 就显示一个 与它对应的也是相同的 每个人的清况不一样 sql语句也大有区别

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)

MySQL 同一张表,两个字段互换值

update t_hplc_family_import a, t_hplc_family_import b set a.f_name= b.f_num, a.f_num= b.f_name where a.id = b.id AND a.id>=498 原文地址:https://www.cnblogs.com/smileblogs/p/12119149.html

一个表中的字段值用作另一个表的In查询条件

Question表与Paper表 Paper表中字段QuestionIds存储的是Question表中字段Id的拼接后的值 如: 'f855eba1-b308-4bd7-a250-c071a0e1bdf0','c0570880-931b-4b34-ba34-58937f940c21','96249256-ddd7-4b28-a066-ebe1c337cf6c','c0b6171a-1b50-4881-a5f5-9928ce1bf593','b71ad813-abad-40f2-bf97-a1ae

数据库修改一个表中的字段值等于另一个表字段值

(MS SQL Server)语句:Sql代码 update   b  set   ClientName   =   a.name   from   a,b   where   a.id   =   b.id    (Oralce)语句:Sql代码 update   b  set   (ClientName)   =  (SELECT name FROM a WHERE b.id = a.id) 原文地址:https://www.cnblogs.com/hujiapeng/p/8311710.h