2012-01-19 3 views
0

私は2つのテーブル、結合、SELECT *を持っています。両方のテーブルには、フィールドidが含まれているが、私は明示的に、このように1にアクセスする必要があります。SQL結合同じ名前の行をフェッチする

$query = "SELECT * FROM #__docman as d JOIN #__users u ON d.dmmantainedby = u.id WHERE d.catid = 5 ORDER BY d.id ASC"; 
$db->setQuery($query); 
$rows = $db->loadObjectList(); 

foreach($rows as $row) { 
    echo $row->id ; 
} 

私はwork..Iは、私は技術的に私のSELECTを変更することができます知らなかった

echo $row->d.id; 

を試してみましたidの呼び出しとエイリアスを使用しますが、フェッチするフィールドがたくさんあるので、*です。別の方法がありますか?

+0

我々はあなたがアクセスに使用するもののライブラリを知っている必要があるだろうデータベース。私が見ることができるのは、mysqliでもPDOでもない – Mchl

答えて

2

あなたは別名を使用する必要がありますあなたがデータを複製する場合、クエリは短期滞在:その後、

"SELECT *, d.id as did, u.id as uid FROM #__docman as d JOIN #__users u ON d.dmmantainedby = u.id WHERE d.catid = 5 ORDER BY d.id ASC" 

そして:

$row->did 
$row->uid 
+0

ありがとうございました! – Sherif

0

SELECT *, d.id AS id_alias FROM ...?これは重複列を選択しますが、依然としてかなり短いクエリになります。

関連する問題