2015-12-18 54 views
2

我想寫在laravel此查詢,如何在Laravel中編寫此SQL查詢?

我的表結構

  1. 產品表

PRODUCT_ID INT(10)

PRODUCT_NAME VARCHAR(100)

Product_Description varchar(300)

CATEGORY_ID INT(11)

Brand_ID INT(11)

2.Stock_IN

STOCK_ID INT(10)

PRODUCT_ID INT(11)

Product_Count int(11)

Order_No INT(11)

Supplier_ID INT(11)

ORDER_DATE文本

  • stock_out
  • stock_out_id INT( 10)

    Product_ID int(1 1)

    PRODUCT_COUNT INT(11)

    Requisition_No INT(11)

    Requisition_By VARCHAR(100)

    收件人VARCHAR(100)

    我的查詢:

    SELECT X.Product_ID,X.Product_Name,X.Count_StockIN,IFNULL(Y.Count_StockOut,0) Count_StockOut,(X.Count_StockIN-IFNULL(Y.Count_StockOut,0)) Balance FROM (SELECT M.product_ID,M.Product_Name, SUM(Product_Count) AS Count_StockIN from (SELECT A.*,B.Product_Name FROM `stock_in` A, `products` B where A.Product_ID=B.Product_ID)M group by Product_ID,Product_Name) X LEFT JOIN (SELECT product_ID, SUM(Product_Count) AS Count_StockOUT from `stock_Out`group by Product_ID) Y On X.Product_ID=Y.Product_ID 
    

    Th Ë輸出是:

    enter image description here

    如何laravel 4.2編寫這個查詢。請幫幫我。

    +0

    所以...你使用雄辯還是查詢生成器?你有嘗試過什麼嗎? – Jerodev

    +0

    您可以使用用戶查詢生成器http://laravel.com/docs/4.2/queries#raw-expressions,您可以使用count count(1)來獲取group_by記錄計數 –

    +0

    我試着用查詢生成器,但無法完成。 –

    回答

    4

    您可以使用移植在laravel中創建表。您可以使用模型查詢到相應的表格。創建一個新的遷移終端上使用項目的根文件夾下面的命令來創建表:

    php artisan make:migration create_product_table --create="product" 
    

    您將獲得數據庫/文件夾遷移一個新的遷移文件。你會看到一個類有兩種方法:updown。 Up方法是創建/修改表,並且向下方法是回滾您在up方法中寫入的表或操作。 您可以使用最多的方法如下代碼:

    public function up() 
        { 
         Schema::create('product', function (Blueprint $table) { 
          $table->increments('product_id'); 
          $table->string('product_name',100); 
          $tale->longText('product_description',300); 
          $table->integer('category_id'); 
          $table->integer('brand_id'); 
          $table->timestamps(); 
         }); 
        } 
    

    同樣,您可以創建其他表,你也可以修改現有的表。那麼你應該使用運行以下命令遷移:

    php artisan migrate 
    

    請參閱的​​官方文檔瞭解更多詳情。

    +1

    這應該被標記爲正確的答案! – jimmypage

    +0

    很好地解釋了答案! –

    +0

    謝謝大家,爲您的潛在努力。問題已經解決了。 –