【发布时间】:2023-04-09 16:10:01
【问题描述】:
这些是我的餐桌详情:
表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 组成。 table1 和 table2 之间的公共列是 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
【问题讨论】:
-
请出示您当前的脚本并解释一下,为什么您不能通过不同的
id和table2加入table1和table22 次? -
@astentx,用脚本更新
-
你可以加入任何(当然,它是有限的,但你很难达到那个数量)数量的表,并在
join中使用一个表任意次数,但应该使用别名每次出现 (JOIN tabname as tabalias)。不需要在select中做子查询,经常执行不好。