Har*_*had 3 sql oracle
当我们使用NATURAL JOIN连接两个表时,在公共列名称的基础上执行连接操作.当我们在两个表中有两个具有相同名称的列时,只显示公共记录.
我有一个查询,当我们有相同名称但不同数据类型的列时,这些列也会连接.我的意思是假设table1中的column_1具有数据类型INTEGER而table2中的column_1具有数据类型VARCHAR,则基于这两列执行连接.
简而言之,当两个具有相同名称的列的数据类型存在差异时,自然连接如何发生?
Mat*_*lie 8
NATURAL JOIN 通常被认为是一种反模式.
NATURAL JOIN
它会导致许多可维护性问题.这只是其中之一.
而是使用显式连接,您可以键入转换字段.
table1 INNER JOIN table2 ON table2.fieldX = CAST(table1.fieldX AS INT)
根据经验和个人偏好,明确比隐含更容易维护.而且没有性能问题.
归档时间:
12 年,11 月 前
查看次数:
397 次
最近记录:
7 年 前