SELECT * FROM LOCN_HDR LH, PICK_LOCN_DTL PLD WHERE pld.locn_id = lh.locn_id(+)
我正在尝试转换为oracle编写的一些旧代码,以便能够在SQL SERVER上运行它。我之前没有使用过(+),但是从快速google开始我认为它是一个外部联接,当它位于右侧时,它是一个左连接,所以从locn_hdr加上来自pick_locn_dtl的所有匹配项中的所有内容。是吗?
只有当我测试它时,它似乎没有像我预期的那样工作。
答案 0 :(得分:4)
由于pld LEFT JOIN lh
位于连接表达式的右侧,因此它是表达式左侧表格上的左连接(即等于pld
),因此它会返回PICK_LOCN_DTL
(即lh
)与LOCN_HDR
((+)
)中的等效行匹配的每一行。
左/右内涵适用于具有FROM
本身的表达式的左/右,而不适用于SELECT *
FROM pick_locn_dtl PLD
LEFT JOIN locn_hdr LH
ON pld.locn_id = lh.locn_id
子句中表的顺序。
这将提供
的ANSI标准连接语法 var global_variable = 0;
var json_object = "Some Json Object";
console.log("1");
NodeToPython(json_object); //Calling the function
function NodeToPython(json_object_local)
{
var send_json = json_object_local;
var zerorpc = require("zerorpc");
var client = new zerorpc.Client();
client.connect("tcp://localhost:4242");
console.log("2");
client.invoke("receive", send_json, function(error, res, more)
{
global_variable = JSON.parse(res); // 'res' stores retrieved value from Python code
console.log("3");
client.close();
}
console.log("4");
}
console.log("5");
答案 1 :(得分:0)
在Oracle中,(+)是OUTER JOIN,这是一个很好的链接,它解释了差异
https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/