Son*_*man 2 sql database informix join
我目前有2个查询(我从互联网上的各个页面中获取),它们执行以下操作:
这些查询分别是
select
c.colname,
c.coltype,
c.collength
from
syscolumns c,
systables t
where
t.tabname = 'user' and
c.tabid = t.tabid
Run Code Online (Sandbox Code Playgroud)
和
select
c.colname,
c.colno,
o.constrtype
from
systables t,
sysconstraints o,
sysindexes i,
syscolumns c
where
t.tabname = 'user' and
c.tabid = t.tabid and
o.tabid = t.tabid and
i.tabid = t.tabid and
o.constrtype in ('R', 'P') and
o.idxname = i.idxname and
( colno = part1 or
colno = part2 or
colno = part3 or
colno = part4 or
colno = part5 or
colno = part6 or
colno = part7 or
colno = part8 or
colno = part10 or
colno = part9 or
colno = part11 or
colno = part12 or
colno = part13 or
colno = part14 or
colno = part15 or
colno = part16 );
Run Code Online (Sandbox Code Playgroud)
我想,这样的结果包含有类似的加入这些查询一起
colname,colno,collength,constrtype.我相信LEFT OUTER JOIN是我需要的,但我不太确定如何形成它所以任何帮助将不胜感激.
我对Informix的元数据表结构并不熟悉,所以我假设您的查询是正确的.
我想你只想获得完整的专栏.以下查询应该执行此操作:
select c.colname, c.colno, o.constrtype
from systables t left outer join
syscolumns c
on c.tabid = t.tabid left outer join
sysconstraints o
on o.tabid = t.tabid left outer join
sysindexes i
on i.tabid = t.tabid and
o.idxname = i.idxname
where t.tabname = 'user' and
o.constrtype in ('R', 'P') and
colno in (part1, part2, part3, part4, part5, part6, part7, part8, part9, part10,
part11, part12, part13, part14, part15, part16
)
Run Code Online (Sandbox Code Playgroud)
我将查询更改为使用现代连接语法.你不应该在from条款中使用逗号.相反,您应该使用显式连接语法.另外,我将比较顺序改为部分in语句.最后,我从表开始并进行所有连接left outer join.