thinkphp 多表查詢

我將不同的表名存在了一個數據表,這些表名對應的數據表的列都是一致的,現在的要求是,把這些表裏面的數據按照篩選條件篩出來。

$list = Db::table("v_software_list")->where('delete', 1)->field('field_js')->select();
$select = '';
foreach ($list as $key => $val) {
    if ($key == 0) {
        $sqlField = $val['field_js'];
        $select = Db::table($sqlField)->comment($sqlField)->field('id,content,title,states,create_time,update_time,desc,delete,sql');
    } elseif($key == count($list) - 1) {
        $sqlField = $val['field_js'];
        $sql = Db::table($sqlField)->comment($sqlField)->field('id,content,title,states,create_time,update_time,desc,delete,sql')->where(handle($data))->buildSql();
        $select = $select->union([$sql])->buildSql();
    } else {
        $sqlField = $val['field_js'];
        $sql = Db::table($sqlField)->comment($sqlField)->field('id,content,title,states,create_time,update_time,desc,delete,sql')->where(handle($data))->buildSql();
        $select = $select->union([$sql]);
    }

}
$getlist = Db::table($select." a")->select();

不知道這樣的運行速度怎麼樣,暫時只能這樣了…

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章