2014-06-30 96 views
1
$q = $db->query("SELECT * 
     FROM people p 
     INNER JOIN job j   
     ON p.job_id = j.id 
     WHERE p.id = '$id' 
     ORDER BY j.id ASC"); 
    $maps = array(); 
    while($row = mysqli_fetch_array($q)) { 
     $product = array(
      'id' => $row['id'], 
      'job_id' => $row['j.id'] 
     ) 
    } 

表人PHP MySQL的內部具有相同的列名加入

id

表工作

id

在上面的代碼我在做內部聯接在兩張桌子之間。這兩個表都有一個名爲id的列有沒有辦法在我的while loop中區分兩者?

我都試過了,但上面$row['j.id']不工作,如果我這樣做$row['id']然後將其與相同的值寫入兩個idjob_id

+0

您需要在選擇數據時使用別名,最好是隻選擇需要的而不是*。 –

+0

將「as [列名]」放在其中一列上。這樣你就可以指定你想要它命名的不同。 – durbnpoisn

+0

您也可以在技術上通過以數字模式提取並通過索引引用它們來訪問這兩個ID值......但我不會推薦它。 –

回答

8
$q = $db->query("SELECT *, j.id as jid, p.id as pid 
     FROM people p 
     INNER JOIN job j   
     ON p.job_id = j.id 
     WHERE p.id = '$id' 
     ORDER BY j.id ASC"); 
$maps = array(); 
while ($row = mysqli_fetch_array($q)) { 
    $product = array(
     'id'  => $row['pid'], 
     'job_id' => $row['jid'] 
    ); 
} 
+0

謝謝,我會接受,當它允許我 – ngplayground

相關問題