Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 连接表以检索DB2中的数据_Sql_Database_Db2 - Fatal编程技术网

Sql 连接表以检索DB2中的数据

Sql 连接表以检索DB2中的数据,sql,database,db2,Sql,Database,Db2,以下是我的表格详情: 表1 id name ---------------- 101 syed 102 shaik 表2 l_id sup_id ----------------- 101 102 id name sup_id sup_name ------------------------------ 101 syed 102 shaik 在表1中,我有两行,101和102,这是一个主表。表2包含主管登录ID及其

以下是我的表格详情:

表1

id       name
----------------
101      syed
102      shaik
表2

l_id     sup_id
-----------------
101     102


id  name    sup_id  sup_name
------------------------------
101 syed    102     shaik
在表1中,我有两行,101和102,这是一个主表。表2包含主管登录ID及其下属ID。表1和表2之间的公共列是id&l_id。因此,我尝试按如下方式提取数据以获取详细信息

我的问题如下

SELECT 
    r.id, 
    trim(r.name) as name, trim(a.sup_id) as sup_id,
    trim(select name from schema.table1 
         where id in (a.sup_id)) as sup_name 
FROM 
    schema.table1 r
JOIN
    schema.table2 a ON a.l_id = r.id 
WHERE 
    r.id IN (101)
我可以得到直到主管id,但不能得到主管姓名

任何想法都将不胜感激

person id - person name - supervisor id - supervisor name

你可以试试下面的方法-

select t1.id,t1.name, sup_id,t2.name as sup_name
from table2 t 
     join table1 t1 on t1.id=t.l_id
     join table1 t2 on t2.id=t.sup_id

请出示您当前的脚本并解释,为什么您不能通过
table2
中不同的
id
加入
table1
table2
两次?@astentx,使用script更新您可以加入任何一个(当然,这是有限的,但您几乎无法达到这个数字)表的数量,并在
join
中多次使用单个表,但每次出现都应使用别名(
join tabname as tabalias
)。不需要在select中执行子查询,它通常执行得不好。您必须连接到sup_id的别名是什么?它是table1@Syed的引用t2.id-您需要将table2与t2上table1join table1 t2的多个实例联接。id=t.sup_id-->在该语句中,t2 table中没有id列。只有l_id和sup_idcolumns@Syed,t2是table1的别名,table1有一个id列,用于连接sup_id