【发布时间】:2012-06-19 07:02:49
【问题描述】:
查询中有四个表
表 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
我想在 a 和 a_tl 上做一个左外连接,在 b 和 b_tl 上做一个左外连接
并在结果表上进行内部连接。我编写了以下查询
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
此查询正在工作,如果语言ID 存在于数据库中,如果特定值不存在,它将不起作用,即左外连接不起作用
【问题讨论】: