[英]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.