簡體   English   中英

如何聯接其他表並計算laravel中的行?

[英]How to join other table and count the row in laravel?

我試圖計算每個求職者有多少個要求職位。 我有兩個表:求職者和職位。

求職者:

+----+---------+-----------+----------------+
| id | fb_name | fullname  | desireposition |
+----+---------+-----------+----------------+
|  1 | John    | John Cena |              3 |
|  2 | Christ  | Christ    |              4 |
|  3 | Thomas  | Cfitcher  |              2 |
+----+---------+-----------+----------------+

職位:

+----+--------+------------------+
| id | job_id | require_position |
+----+--------+------------------+
|  1 |     12 |                3 |
|  2 |     13 |                3 |
|  3 |     14 |                4 |
|  4 |     15 |                5 |
|  5 |     16 |                4 |
|  6 |     17 |                3 |
+----+--------+------------------+

我的預期結果是:

+----+---------+-----------+----------------+-----------------------+
| id | fb_name | fullname  | desireposition | total_requireposition |
+----+---------+-----------+----------------+-----------------------+
|  1 | John    | John Cena |              3 |                     3 |
|  2 | Christ  | Christ    |              4 |                     2 |
|  3 | Thomas  | Cfitcher  |              2 |                     0 |
+----+---------+-----------+----------------+-----------------------+

我想計算每個求職者在那兒需要多少職位。

這是我使用crossJoin嘗試過的方法,但是不確定我實際需要使用crossJoin

$jobseekers = Jobseeker::crossJoin('jobpositions')
              >select('fullname','fb_name','desire_position', DB::raw('count(require_position) as total_requireposition'))
            ->groupBy('fullname')->paginate(10);

誰能幫助我? 任何幫助將不勝感激。

您想要的常規MySQL查詢是:

SELECT s.id, fullname, fb_name, desireposition, IFNULL(COUNT(require_position), 0) AS require_position
FROM jobseeker AS s
LEFT JOIN jobposition AS p ON s.desireposition = p.require_position
GROUP BY s.id

我不使用Laravel,但我認為翻譯是:

$Jobseeker->select('fullname','fb_name','desire_position', DB::raw('IFNULL(COUNT(require_position), 0) as total_requireposition'))
        ->leftjoin('jobposition', 'desireposition', '=', 'require_position')
        ->groupBy('jobseeker.id')
        ->paginate(10)

暫無
暫無

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

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