2016-04-20 75 views
0

我的表像這樣如何通過合併兩個相同的行,並顯示

id , user_id , product_id , product_name , sub_name , status 
    1 ,  1 , 001  , name1  , sub1,  1 
    2 ,  1 , 001  , name1  , sub2,  1 
    3 ,  1 , 002  , name2  , sub3,  1  

我想在我的視圖頁面來顯示我的結果一樣

id , user_id , product_id , product_name , sub_name , status 
    1 , 1  , 001  , name1  , sub1,  1 
    3 , 1  , 002  , name2  , sub3,  1  

我的SQL查詢中codeiginter MySQL的不同ID列

$data['product'] = $this->db->group_by('product_id') 
      ->where(array('user_id' => $id, 'product_id' => $product_id))->get('sr_shortserials')->result(); 

但我得到了這樣的

id , user_id , product_id , product_name , sub_name , status 
    3 , 1  , 002  , name2  , sub3,  1  

這一個確定,但我想兩個編號1和3

+0

你現在是否獲得行ID:2而不是ID:3?請用當前輸出更新您的問題。 –

回答

1

我假設你想最早sub_name字段值顯示所有產品從表。

最好的方法是重構數據並將sub_name字段旋轉到其單獨的表格,因爲當前數據strcuture在正常窗體階梯上不太高。

但是查詢的主要邏輯並不依賴於sub_name是否是不同的表。您需要獲取每個產品的最小ID(如果sub_names位於不同的表中,則爲min sub_name id),並返回主表(單獨的sub_names表)以獲取正確的詳細信息。

select t1.* 
from yourtable t1 
inner join 
    (select user_id, product_id, min(id) as minid 
     from yourtable 
     group by user_id, product_id) t2 on t1.id=t2.minid 
+0

不,我想顯示產品編號沒有相同的(如果我有001四次和002一次在表意味着001編號應該顯示一次和002也想顯示) – shruthi

+0

我得到這個,但你需要確定哪個sub_name你出現在輸出中。 Mysql將無法爲你解決這個問題。 – Shadow

+0

那不是問題,你不認爲,只要考慮id和project_id – shruthi