sql—在oracle中有没有其他方法来跟踪查询

m3eecexj  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(343)
select 
    a.id,
    a.name,
    b.group,
    a.accountno, 
    (
        select ci.cardno 
        from taccount ac, tcardinfo ci 
        where ac.accountno = ci.accountno 
    ) as card_no 
from tstudent a, tgroup b 
where a.id = b.id

以及如何从中选择多个字段 (select ci.cardno from taccount ac,tcardinfo ci where ac.accountno = ci.accountno) 或者其他任何方式
请注意,在两个查询(主查询和子查询)中,不是关系。子查询值取决于主查询的数据。主查询是多表连接的数据集,子查询也是多表连接的数据集

xienkqul

xienkqul1#

本质上,您描述的是横向连接。从第12版起,这在oracle中可用。
您的查询不清楚每一列来自哪个表(我做了一些假设,您可能需要检查),并且您似乎在子查询中缺少一个连接条件(我在该位置添加了问号)。。。但这个想法是:

select 
    s.id,
    s.name,
    g.group,
    s.accountno, 
    x.*
from tstudent s
inner join tgroup g on g.id = s.id
outer apply (
    select ci.cardno 
    from taccount ac
    inner join tcardinfo ci on ????
    where ac.accountno = s.accountno 
) x

然后可以将更多的列返回到子查询,然后将显示在结果集中。

相关问题