簡體   English   中英

Laravel 子查詢到另一個數據庫表

[英]Laravel subquery to another database table

我需要子查詢另一個數據庫表中不存在數據的位置。

我試過DB::connection('dbconfigname')

第一個 DB vmysql表名節點

|id|姓名|
|1 |山姆 |
|2 |傑克|
|3 |墊子 |
|4 |國王|

第二個 DB mysql表名node_tag

|id|node_id|
|1 |2 |
|2 |3 |

我的查詢

$tag = 'true';
\DB::connection('vmysql')->table('node')->->when($tag, function($query) use($tag){
            if ($tag === 'true') {
                \DB::connection('mysql');
                $query->whereNOTIn('node.id',function($subquery){
                    $subquery->select(\DB::connection('mysql')->select(\DB::raw("select node_id from node_tag")));
     
                 });
            }
        })

是否可以通過另一個數據庫表進行子查詢

是的,只需要做一個連接查詢: https://laravel.com/docs/7.x/queries#joins

或者,如果您有 eloquent 型號,您可以這樣做

$nodeTags = NodeTag::distinct('node_id')->get()->toArray();
$nodesWithoutTags = Node::whereNotIn('id', $nodeTags)->get();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM