Oracle SQL-连接表以将一列包含到另一列(反之亦然)
这些是我的示例表、列和记录…Oracle SQL-连接表以将一列包含到另一列(反之亦然),sql,oracle,join,Sql,Oracle,Join,这些是我的示例表、列和记录… 场景: 我想得到一个结果,其中两个表连接在一起,MANHRS和sweers列都在结果集中 我试过联合,但没有得到预期的结果( 如何做到这一点?假设您应该按部门和工作加入: SELECT t1.*, t2.WAGES FROM tbl1 t1, tbl2 t2 where t1.DEPT = t2.DEPT and t1.WK = t2.WK 编写查询的正确方法是: SELECT t1.*, t2.WAGES FROM tbl1 t1 JOIN
场景:
我想得到一个结果,其中两个表连接在一起,MANHRS和sweers列都在结果集中
我试过联合,但没有得到预期的结果(
如何做到这一点?假设您应该按部门和工作加入:
SELECT t1.*, t2.WAGES
FROM tbl1 t1, tbl2 t2
where t1.DEPT = t2.DEPT and t1.WK = t2.WK
编写查询的正确方法是:
SELECT t1.*, t2.WAGES
FROM tbl1 t1 JOIN
tbl2 t2
ON t1.DEPT = t2.DEPT and t1.WK = t2.WK;
注:
- 切勿在
子句中使用逗号。始终使用正确、明确的FROM
语法JOIN
- 我不确定
是否应处于ID
条件中JOIN
- 如果需要两个表中的所有行,但可能缺少一些行,请使用
FULL JOIN
子句编写查询:
SELECT ID, DEPT, WK, t1.MANHRS, t2.WAGES
FROM tbl1 t1 JOIN
tbl2 t2
USING (ID, DEPT, WK);
如果您使用的是完全联接
提示:联接
。您遇到了什么问题?您尝试了什么?我尝试了联合,但没有得到预期的结果。:(使用联接
重试,并将查询放入问题中(您可以编辑问题)。我试过了。它很有效。谢谢戈登。不要用过时的JOIN
语法回答问题!谢谢!我会注意“正确的连接语法”。我在连接时使用逗号,并且在where子句中有键。我还使用了(+)对于左/右连接。我不知道为什么这不是一个最佳实践。您能告诉我吗?@boombox2014…我认为文档中的主题非常清楚:“Oracle建议您使用FROM子句外部连接语法,而不是Oracle连接运算符。”()
SELECT t1.*, t2.WAGES
FROM tbl1 t1 JOIN
tbl2 t2
ON t1.DEPT = t2.DEPT and t1.WK = t2.WK;
SELECT ID, DEPT, WK, t1.MANHRS, t2.WAGES
FROM tbl1 t1 JOIN
tbl2 t2
USING (ID, DEPT, WK);