簡體   English   中英

mysql php從2個表中選擇字段,具有相同的字段名稱

[英]mysql php selecting fields from 2 tables, with the same field names

所以我有一個定制的CMS,允許動態創建表單和列表等。我注意到一個問題,它抓取列表的數據,這與數據庫中的批准表沖突。

問題是,如果帶有數據的表的字段名稱與批准表中的字段名稱相同,那么當我mysql_fetch_array並返回數組中的值時,它將只返回一個字段名稱

這是一個返回的例子

Array
(
    [id] => 1
)

理想情況下,我希望它返回為

Array
(
    [approvals.id] => 1
    [affiliates.id] => 2
)

那么如何才能使表名前綴到結果數組以抵消稱為同一事物的字段名稱呢? 我不想通過更改字段名稱作為其非常嵌入。

通常在SQL語句中使用別名:

SELECT table1.id as t1_id, table2.id as t2_id FROM .....

然后,當您獲取時,您將以這種方式訪問​​它:

echo $row['t1_id'];

使用mysql別名

審批表id別名為[id AS approvals.id]

affiliates table id別名為[id AS affiliates.id]

在查詢中使用別名:

SELECT approvals.id AS approvals_id, affiliates.id AS affiliates_id ...

然后關聯數組將包含:

echo $row['approvals_id'];

問題是,如果包含數據的表的字段名稱與批准表中的字段名稱相同

您必須使用不同的別名為這些字段的名稱添加別名。 就像是:

SELECT 
   approvals.id approvalsid,
   affiliates.id affiliatesid
    ...
FROM
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM