[英]joined tables overwrite the columns
當使用Zend_Db_Table
S和Zend_Db_Table_Select
與Zend_Db_Adapter_Pdo_Pgsql
,我使用一個選擇查詢有一個問題:
$rowset = $db->select()->from(array('a'=>'tablea'))
->columns(array('a.a'))
->join(array('b'=>'tableb'),'b.id = a.id', array('b.a'))
->query()->fetchAll();
行集的預期內容:(主要是鍵)
$rowset['a.a'] = "something";
$rowset['b.a'] = "somethingElse";
在$rowset
的實際內容中,僅存在$rowset['a']
,無法區分聯接的表。
有什么解決辦法嗎?
當只是做一個
$q = "SELECT * FROM tablea AS a
JOIN tableb AS b ON a.key = b.fkey";
$dbtable->getAdapter()->fetchAll($q);
我也沒有得到我所期望的。
為了在有匹配的列名時區分表a和b,您需要對表b中的列進行別名化。 然后,該聯接將類似於:
->join(array('b' => 'tableb'), 'a.id = b.id', array('a_from_b' => 'b.a'))
請注意,“ ON”條件應為字符串,而不是數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.