Oracle SQL使用列作为查询,然后在原始列上显示结果
我有两张桌子 第一个名为DATA的表如下所示:Oracle SQL使用列作为查询,然后在原始列上显示结果,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,我有两张桌子 第一个名为DATA的表如下所示: DATE NAME DESCRIPTION 5/2 5 Orange Juice 5/4 2 Apple Juice 5/5 1 Cranberry Juice 5/6 1 Lemon Juice NAME_ID NAME 5 Bob 4 Frank 3 Megan 2 Tim
DATE NAME DESCRIPTION
5/2 5 Orange Juice
5/4 2 Apple Juice
5/5 1 Cranberry Juice
5/6 1 Lemon Juice
NAME_ID NAME
5 Bob
4 Frank
3 Megan
2 Tim
1 Brian
第二个表名为NAMES,如下所示:
DATE NAME DESCRIPTION
5/2 5 Orange Juice
5/4 2 Apple Juice
5/5 1 Cranberry Juice
5/6 1 Lemon Juice
NAME_ID NAME
5 Bob
4 Frank
3 Megan
2 Tim
1 Brian
我想,从数据表中查询所有列,并在名称列上执行查找,让它获取该数字,在名称表中查找该数字,并在数据表中替换该数据,名称列,这样我会得到如下结果:
DATE NAME DESCRIPTION
5/2 Bob Orange Juice
5/4 Tim Apple Juice
5/5 Brian Cranberry Juice
5/6 Brian Lemon Juice
我是一个彻头彻尾的SQL noob,所以到目前为止,我的尝试都是用谷歌搜索,我一直在寻找子查询,但这似乎并不能解决问题。不,你不需要子查询,但你确实需要连接。第1-10行的样本数据;执行作业的查询从第12行开始。我猜“date”列实际上是
date
datatype,但为了简单起见,我将其保留为字符串
SQL> with
2 -- sample data
3 data (datum, name, description) as
4 (select '5/2', 5, 'Orange Juice' from dual union all
5 select '5/4', 2, 'Apple Juice' from dual
6 ),
7 names (name_id, name) as
8 (select 5, 'Bob' from dual union all
9 select 2, 'Tim' from dual
10 )
11 -- query you probably need
12 select d.datum,
13 n.name,
14 d.description
15 from data d join names n on n.name_id = d.name
16 order by d.datum;
DATUM NAME DESCRIPTION
----- ----- ------------
5/2 Bob Orange Juice
5/4 Tim Apple Juice
SQL>
提示:
加入
。这通常是学习SQL时首先要学习的内容之一。