我想查询第一张表内以及其关联附属表内的属性,举个例子,比如我查到第一张表内的id为1的,获取type为1,根据type并关联到对应的表二,并根据 表一.id = 表二.assembly_id 获取表二内的属性,同理,我查到表一内id为2的,获取其type为2,根据type关联表三,获取出表三中对应的属性。
求教如何用一条sql 查询表一内所有的信息以及关联表内的属性
我想查询第一张表内以及其关联附属表内的属性,举个例子,比如我查到第一张表内的id为1的,获取type为1,根据type并关联到对应的表二,并根据 表一.id = 表二.assembly_id 获取表二内的属性,同理,我查到表一内id为2的,获取其type为2,根据type关联表三,获取出表三中对应的属性。
求教如何用一条sql 查询表一内所有的信息以及关联表内的属性
CREATE OR REPLACE PROCEDURE SF_TEST
cursor cur1 is
select * from a_tab a
temp1 cur1%rowtype;
begin
for temp1 in cur1 loop
if temp1.type=1 then
select * from b_tab b where temp1.id=b.assembly_id
end if;
if temp1.type=2 then
select * from c_tab c where temp1.id=c.assembly_id
end if;
end loop;
end SF_TEST;
这样?
如果表2和表3合并后,assembly_id是唯一的,可以参考下面的语句
SELECT t1.*, t_union.*
FROM t1 LEFT JOIN (
SELECT assembly_id, color, '' as text FROM t2
UNION ALL
SELECT assembly_id, '' as color, text FROM t3
) t_union
ON t1.type = t_union.assembly_id
15 回答8.4k 阅读
8 回答6.2k 阅读
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
2 回答2.8k 阅读✓ 已解决
在主表中的id存在唯一约束且标签表中的assembly_id也存在唯一约束的条件下,
可以得出结论:
即如果主表与多个标签表同时进行join的话,结果表的行数与原始表行数一致
如果标签表并不多的情况下,可以使用以下方法进行实现