如何通过Oracle SQL从D值关联获取table2对应的value值?
实现需求的Oracle SQL方案
以下是两种符合需求的Oracle SQL实现方式,可根据实际场景选择:
方式一:JOIN关联查询
直接通过表关联获取结果,适合需要同时返回my_table中其他字段的场景:
-- 仅获取目标value值 SELECT t2.value FROM my_table t1 JOIN table2 t2 ON t1.B = t2.B WHERE t1.D = 'jmk'; -- 同时返回my_table中的其他字段(如A、C) SELECT t1.A, t1.B, t1.C, t1.D, t2.value FROM my_table t1 JOIN table2 t2 ON t1.B = t2.B WHERE t1.D = 'jmk';
方式二:嵌套子查询
先从my_table中提取指定D值对应的B值,再以此为条件查询table2:
-- 适用于my_table中同一D值仅对应唯一B值的场景 SELECT value FROM table2 WHERE B = (SELECT B FROM my_table WHERE D = 'jmk'); -- 若my_table中同一D值可能对应多个不同B值,改用IN避免报错 SELECT value FROM table2 WHERE B IN (SELECT B FROM my_table WHERE D = 'jmk');
内容的提问来源于stack exchange,提问作者honeymoon
相关产品推荐
相关产品推荐

