如果我过滤加入,我会得到这个结果: filtering on join
如果我在哪里过滤 Filtering on where
为什么我会得到不同的结果? 有什么不同? 当我需要在连接中使用过滤器时以及何时需要在哪里使用过滤器?
答案 0 :(得分:1)
造成差异的原因是使用了var processes = new Map();
function Process (){
do {
var id = Math floor(Math.random()*10**10);
}while(processes.has(id));
this.id = id;
processes.set(id,this);
}
Process.prototype.pending = function(res){
if(this.first && this.second)
return res.end(this.first + this.second);
res.end(`
<html>
<body>
Please wait...
<script> setTimeout(location.reload.bind(location),2000);
</script>
</body>
</html>`);
};
//the routing
var app = Express();
app.get("/create",function(req,res){
var p = new Process();
req.end(p.id);
});
app.get("/first/:id/:data",function(req,res){
var p = processes.get(req.params.id);
if(!p) return res.end("id not found");
p.first = req.params.data;
p.pending(res);
});
app.get("/second/:id/:data",function(req,res){
var p = processes.get(req.params.id);
if(!p) return res.end("id not found");
p.second = req.params.data;
p.pending(res);
});
。
当您在LEFT JOIN
子句中RIGHT
的{{1}}表上指定过滤器时,请将转换加入LEFT JOIN
WHERE
归因于INNER JOIN
比较。
右表中的过滤器应始终,并且只能在NULL
子句中指定。