2012-07-18 29 views
0

以下是我需要查詢的三個表。如何編寫用於更改變量的mysql查詢

r601_shoppingcart_carts 
    cart_id   user_id   customize 
    10    65     1 
    11    78     1 
    12    78     0 

r601_shoppingcart_items: 
cart_item_id cart_id  sobipro_entry  
    5    10   87 
    39    11   194 
    40    11   140 
    38    12   126 

r601_sobipro_field_data 
fid    sid   baseData 
45    194   cg_0059 
45    140   cg_0094_4 
45    141   cg_0011_2 

查詢將針對特定用戶(USER_ID)車提供baseData(產品編號),如果該項目(產品)是定製

在這種情況下正確的檢索的數據應顯示的期望的結果這USER_ID 78在他/她的購物車有以下兩個可自定義的項目: cg_0059 cg_0094_4

早些時候,我在這裏顯示的SELECT語句,這是出路在左外野。我發現下面的SELECT語句實現了我的目標。我不知道這是否是一種有效的聲明。任何意見將不勝感激。

SELECT 
    r601_sobipro_field_data.baseData, 
    r601_sobipro_field_data.sid, 
    r601_shoppingcart_items.cart_id, 
    r601_shoppingcart_carts.cart_id 
FROM 
    r601_sobipro_field_data, 
    r601_shoppingcart_items, 
    r601_shoppingcart_carts 
WHERE 
    r601_sobipro_field_data.fid = 45 
AND 
    r601_sobipro_field_data.sid = r601_shoppingcart_items.sobipro_entry 
AND 
    r601_shoppingcart_items.cart_id = r601_shoppingcart_carts.cart_id 
AND 
    r601_shoppingcart_carts.user_id = 78 
AND 
    r601_shoppingcart_carts.customize = 1 

我確實收到了一條有用的信息。謝謝!

回答

0

問題在於行:

$partNo = $sobiBaseData_rows[$i]->baseData; 

由於該查詢返回的值返回一個單獨的數組,你不能訪問$ i個元素。

如果只有一個返回值每次,您可以訪問它爲:

$partNo = $sobiBaseData_rows[0]->baseData; 

如果返回多個值,可以遍歷所有的值,並將其存儲在數組中。