【发布时间】:2015-11-13 12:33:42
【问题描述】:
我是 sql 新手,我使用 Sql Developer (Oracle db)。 当我需要选择一些具有空值的数据时,我会编写以下选择之一:
1)
SELECT i.number
,i.amount
,(SELECT value FROM ATTRIBUTES a
WHERE a.parameter = 'aaa' AND a.item_nr = i.number) AS atr_value
FROM ITEMS i
2)
SELECT i.number
,i.amount
,a.value as atr_value
FROM ITEMS i
left outer join ATTRIBUTES a
on a.parameter = 'aaa'
and a.item_nr = i.number
问题:
- 有什么区别?
- 如何调用第一种方法(我如何用谷歌搜索它)?我在哪里可以了解它?
- 我应该进一步使用哪一个(最佳做法是什么),也许有更好的方法来选择相同的数据?
表格示例:
【问题讨论】:
-
第二个查询可以返回一个项目的多个属性值,第一个查询会在这种情况下引发错误。
-
相关子查询与外连接 - 检查解释计划的差异
标签: sql oracle outer-join