2011-12-25 407 views
2

我已經從兩個表做了一個SQL查詢。一切正常,但問題是這兩個表具有相同的字段名稱,並且在我不知道如何正確顯示它們之後,如何知道$ data ['aaa']來自表1並且相同的$ data ['aaa 「]從表2如何從兩個不同的表格顯示具有相同名稱的列?

這裏是我的SQL查詢:作爲一個解決方案,你可以改變你的SQL查詢給一個別名有領域

$query_str = "SELECT 
        cm.id, 
        cm.global_category_id, 
        cm.num, 
        cm.menu_lv, 
        cm.menu_ru, 
        cm.menu_en, 
        u.id, 
        u.menu_lv, 
        u.menu_ru, 
        u.menu_en 
        FROM products_category cm, products_global_category u 
        WHERE cm.global_category_id = u.id 
        "; 

和顯示數據

<? foreach ($sub_category_list as $line) : ?> 
<tr> 
    <td><?=$line['menu_lv']?></td> <---- here I want to display data from products_global_category u  
    <td><?=$line['sub_menu_lv']?></td> <---- products_category cm 
    <td><?=$line['sub_menu_ru']?></td> <---- products_category cm 
    <td><?=$line['sub_menu_en']?></td> <---- products_category cm 
</tr> 
<? endforeach; ?> 

回答

7

同名。

例如:

SELECT somefield AS othername FROM table. 

在這種情況下,該字段somefield將可通過別名othername

你的情況:

$query_str = "SELECT 
       cm.id AS cm_id, 
       cm.global_category_id, 
       cm.num, 
       cm.menu_lv AS cm_menulv, 
       cm.menu_ru AS cm_menuru, 
       cm.menu_en AS cm.menuen, 
       u.id as u_id, 
       u.menu_lv AS u_menulv, 
       u.menu_ru AS u_menuru, 
       u.menu_en AS u_menuen 
       FROM products_category cm, products_global_category u 
       WHERE cm.global_category_id = u.id 
       "; 

然後在你的PHP:

$line['u_menulv'] //Access field menu_lv from products_global_category table 
$line['cm_menulv'] //Access field menu_lv from products_category table 

編輯:mysql_fetch_arraydocumentation page

如果結果的兩個或多個列具有相同的字段名稱, 最後一列將爲ta優先。要訪問同名 的其他列,您必須使用該列的數字索引或爲該列創建別名 。對於別名列,您不能使用原始列名稱訪問 內容。

換句話說,要麼像上面顯示的那樣創建別名,要麼通過數組的數字索引訪問字段。

+0

非常感謝你!它幫助我解決我的問題 – Viktors 2011-12-25 20:31:58

1

簡單的別名,你想打印出彼此其中的衝突,例如記錄:

SELECT 
    table1.pid AS page_id, 
    table2.pid AS product_id 
FROM 
    table1 
LEFT JOIN 
    table2 
ON 
    table1.id = table2.id 

然後你的PHP中,你可以回聲出來如下:

while ($row = mysql_fetch_assoc($res)) { 
    echo $row['page_id']; 
    echo $row['product_id']; 
} 

希望這有助於!

相關問題