本文整理汇总了PHP中QueryBuilder::addLeftJoin方法的典型用法代码示例。如果您正苦于以下问题:PHP QueryBuilder::addLeftJoin方法的具体用法?PHP QueryBuilder::addLeftJoin怎么用?PHP QueryBuilder::addLeftJoin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QueryBuilder
的用法示例。
在下文中一共展示了QueryBuilder::addLeftJoin方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: findAll
public function findAll($qbuilder)
{
if (UserSession::getInstance()->getAccessLevel() < 3) {
die("<h1>Forbidden resource for you.</h1>");
}
@($dao = new DAO(Test));
if (!isset($qbuilder)) {
$qbuilder = new QueryBuilder('test');
$qbuilder->addOrder("dsc_code", QueryBuilder::$ASC, 'discipline');
$qbuilder->addOrder("tst_title", QueryBuilder::$ASC);
}
$qbuilder->addJoin("discipline", "tst_dsc_id", "dsc_id");
$qbuilder->addLeftJoin("testproblems", "tst_id", "tpb_tst_id");
$qbuilder->addGroupBy("tst_id", "test");
$tests = $dao->findByQueryWithMetaFields($qbuilder);
return $tests;
}
示例2: buildGetDataSQL
/**
* Builds the SQL statement to select the data for this page and schema
*
* @return array Two fields: the SQL string and the parameters array
*/
protected function buildGetDataSQL()
{
$sep = Search::CONCAT_SEPARATOR;
$stable = 'data_' . $this->schema->getTable();
$mtable = 'multi_' . $this->schema->getTable();
$QB = new QueryBuilder();
$QB->addTable($stable, 'DATA');
$QB->addSelectColumn('DATA', 'pid', 'PID');
$QB->addGroupByStatement('DATA.pid');
foreach ($this->schema->getColumns(false) as $col) {
$colref = $col->getColref();
$colname = 'col' . $colref;
$outname = 'out' . $colref;
if ($col->getType()->isMulti()) {
$tn = 'M' . $colref;
$QB->addLeftJoin('DATA', $mtable, $tn, "DATA.pid = {$tn}.pid AND DATA.rev = {$tn}.rev AND {$tn}.colref = {$colref}");
$col->getType()->select($QB, $tn, 'value', $outname);
$sel = $QB->getSelectStatement($outname);
$QB->addSelectStatement("GROUP_CONCAT({$sel}, '{$sep}')", $outname);
} else {
$col->getType()->select($QB, 'DATA', $colname, $outname);
$QB->addGroupByStatement($outname);
}
}
$pl = $QB->addValue($this->pid);
$QB->filters()->whereAnd("DATA.pid = {$pl}");
$pl = $QB->addValue($this->getLastRevisionTimestamp());
$QB->filters()->whereAnd("DATA.rev = {$pl}");
return $QB->getSQL();
}
示例3: findAll
public function findAll($qbuilder)
{
if (UserSession::getInstance()->getAccessLevel() < 3) {
die("<h1>Forbidden resource for you.</h1>");
}
@($dao = new DAO(Problem));
if (!isset($qbuilder)) {
$qbuilder = new QueryBuilder('problem');
$qbuilder->addOrder("dsc_code", QueryBuilder::$ASC, 'discipline');
$qbuilder->addOrder("prb_difficultyLevel", QueryBuilder::$ASC);
$qbuilder->addOrder("prb_title", QueryBuilder::$ASC);
}
$qbuilder->addJoin("discipline", "prb_dsc_id", "dsc_id");
$qbuilder->addLeftJoin("evaluationcase", "prb_id", "evc_prb_id");
$qbuilder->addGroupBy("prb_id", "problem");
$problems = $dao->findByQueryWithMetaFields($qbuilder);
return $problems;
}