Db::table('think_artist')
->alias('a')
->join('think_work w','a.id = w.artist_id')
->join('think_card c','a.card_id = c.id')
->select();
$join = [
['think_wk w','a.id = w.artist_id'],
['think_cd c','a.card_id = c.id'],
];
Db::table('think_user')->alias('a')->join($join)->select();
Db::table('think_artist')
->alias('a')
->join('__WORK__ w','a.id = w.artist_id')
->join('__CARD__ c','a.card_id = c.id')
->select();
$list = Db::name('merchant_order')->alias('a')
->join('merchant_member mm', 'mm.id=a.member_id', 'LEFT')
->where($whereStr)
->field($file)
->order(['a.create_time' => 'desc'])
->paginate(Config::get('list_rows'), false, ['page' => $page,'query'=>$param])
->each(function($item,$key){
if($item['pid'] == 0) {
$item['company_name'] = Db::name('merchant')->where(['member_id'=>$item['member_id']])->value('company_name');
$item['sub_company_name'] = Db::name('merchant')->where(['member_id'=>$item['member_id']])->value('sub_company_name');
$item['corporation'] = Db::name('merchant')->where(['member_id'=>$item['member_id']])->value('corporation');
} else {
$item['company_name'] = Db::name('merchant')->where(['member_id'=>$item['pid']])->value('company_name');
$item['sub_company_name'] = Db::name('merchant')->where(['member_id'=>$item['pid']])->value('sub_company_name');
$item['corporation'] = Db::name('merchant')->where(['member_id'=>$item['pid']])->value('corporation');
}
return $item;
});
__WORK__和 __CARD__在最终解析的时候会转换为 think_work和 think_card
INNER JOIN: 等同于 JOIN(默认的JOIN类型),如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行

本文介绍了Thinkphp5.0中JOIN操作的使用,包括INNER JOIN, LEFT JOIN, RIGHT JOIN和FULL JOIN。INNER JOIN返回至少有一个匹配的行,LEFT JOIN即使右表无匹配也返回左表所有行,RIGHT JOIN反之,而FULL JOIN只要任一表有匹配则返回行。"
105710954,7399307,MySQL不停机主从搭建:基于日志点复制与mysqldump,"['数据库', 'MySQL', '高可用']
1576

被折叠的 条评论
为什么被折叠?



