有四个表查询
表A中包含A_ID,a_name
表a_tl包含a_tl_id,A_ID,LANGUAGE_ID,a_disp_name
表B中B_ID ,A_ID,b_name
表b_tl包含b_tl_id,B_ID,LANGUAGE_ID,b_disp_name两个左外连接不能正常工作的Oracle SQL
我想做一个左外上AA加盟ND a_tl,一个leftouter上B和b_tl
和一个内连接上所得到的表连接.I写以下查询
SELECT case a.a_disp_name
WHEN null THEN a.a_name
else a.a_disp_name
end AS a_name ,
case b.b_disp_name
WHEN null THEN b.b_name
else b.b_disp_name
end AS b_name ,
a_id ,
b_id
FROM a ,
a_tl ,
b ,
b_tl
WHERE a.a_id = a_tl.a_id (+)
AND b.b_id = b_tl.b_id (+)
AND a_tl.language_id = 2
AND b_tl.language_id = 2
AND a.a_id= b.b_id
该查询工作LANGUAGE_ID的是存在于数据库中如果特定值它不存在它不会工作,即左外部联接不工作
感谢您的回答。 –
您能否指点我可以了解多个连接的语法的文档。我无法理解您为什么使用a_tl和b_tl而不是a,b'LEFT JOIN a_tl ON(a_tl.a_id = a.a_id AND a_tl.language_id = 2) LEFT JOIN b_tl ON(b_tl.b_id = b.b_id AND b_tl.language_id = 2)' –
这里是['JOINS'文档](http://docs.oracle.com/cd /B28359_01/server.111/b28286/queries006.htm)。不确定你的意思是*多个连接*。你是说这两个条件?外连接成功所需的每个条件都放在那里。你的意思是我的两个'LEFT JOIN's?您可以根据需要加入尽可能多的表格。 –