zoukankan      html  css  js  c++  java
  • laraval join 的理解

    public function join($table, $one, $operator = null, $two = null, $type = 'inner', $where = false)
    {
    // If the first "column" of the join is really a Closure instance the developer
    // is trying to build a join with a complex "on" clause containing more than
    // one condition, so we'll add the join and call a Closure with the query.
    if ($one instanceof Closure) {
    $join = new JoinClause($type, $table);
    call_user_func($one, $join);
    $this->joins[] = $join;
    $this->addBinding($join->bindings, 'join');
    }
    // If the column is simply a string, we can assume the join simply has a basic
    // "on" clause with a single condition. So we will just build the join with
    // this simple join clauses attached to it. There is not a join callback.
    else {
    $join = new JoinClause($type, $table);
    $this->joins[] = $join->on(
    $one, $operator, $two, 'and', $where
    );
    $this->addBinding($join->bindings, 'join');
    }
    return $this;
    }

    ====DB::table('app_a as a')
    ->join('app_b as b',function($join){
    $join->on('a.id','=','b.goodId')
    ->where('b.status','=','SUCCESS')
    ->where('b.type','=','UNLOCK');
    }, null,null,'left')
    ->where('a.id','>',1)
    ->get();

    //相当于
    SELECT * FROM app_a as a
    LEFT JOIN app_b as b on a.id = b.goodId
    and b.status = 'SUCCESS' and b.type = 'UNLOCK'
    where a.id > 1;


    当join不传left时,默认是inner。

  • 相关阅读:
    hdfs校验和
    hdfs读写策略
    hdfs架构
    hdfs数据块
    元数据
    集群的创建
    jQuery_DOM操作
    jQuery_简介_选择器
    Ajax
    MySQL整理_2_数据库操作
  • 原文地址:https://www.cnblogs.com/JdsyJ/p/11357104.html
Copyright © 2011-2022 走看看