雄辩的查询,以获取来自不同表的两列的差异

时间:2018-09-06 10:04:22

标签: php laravel laravel-5 eloquent

我必须使用雄辩的查询来显示剩余的书籍数量。 我可以从此表中获取购买的图书总数

ordered_books
BOOKCODE[varchar(10)]   QUNATITY[varchar(6)]
111                         25
423                         15
201                         10
111                         10
423                         10
201                         5
158                         12

首先,我必须对每本书的代码总计书总数。然后从另一个表中计算出差异。

books_out
DISTRIBUTOR[varchar(50)]    BOOKCODE[varchar(10)]           QUNATITY[varchar(6)]    
25                              158                             2
35                              201                             5
45                              158                             5
55                              111                             10
35                              111                             5
15                              423                             1
25                              423                             10

同样,从该表中,我必须计算发行商所购书的总数,然后才能获得当前的实际书数。我应该如何针对这种情况编写雄辩的查询?

2 个答案:

答案 0 :(得分:1)

after

答案 1 :(得分:1)

关于您的情况,我认为您需要此查询,请尝试一下并评论它是否有用。

$countBooks = DB::select(DB::Raw(" SELECT A.TOTAL, IFNULL(B.SOLD,0) AS SOLD, (A.TOTAL - IFNULL(B.SOLD,0)) AS REMAINING FROM 
                                                (
                                                    select t1.BookID, SUM(t1.QUNATITY) AS TOTAL from ordered_books t1 
                                                    GROUP BY t1.BookID) A 
                                                LEFT JOIN 
                                                (
                                                    SELECT BookCode, IFNULL(SUM(Quantity),0) AS SOLD FROM books_outs GROUP BY BookCode) B 
                                                ON A.BookID = B.BookCode
                                    "));

dump($countBooks);

此外,最好显示书籍名称而不是代码。它将更加人性化。谢谢!!!