2013-10-09 53 views
0

我有這樣的功能:我需要一個良好的MySQL查詢到從3代表接受信息

function view_user_anunt($user) { 
    $query="SELECT * FROM `anunturi` 
      FULL OUTER JOIN tranzactie 
      ON anunturi.tranzactie = tranzactie.id_tranzactie WHERE `anunturi.user`=:code"; 

     $stmt = $this->dbh->prepare($query); 
     $stmt->bindParam(':code', $user, PDO::PARAM_INT); 
     $stmt->execute(); 
     foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $result) 
     { 
      $view[]=" 
      <tr> 
      <td>".$result['id_anunt']."</td> 
      <td>".$result['den_tranzactie']."</td> 
      <td>".$result['den_proprietate']."</td> 
      <td><a href='#' id='vizualizare'>Select</a></td> 
      <td><a href='#' id='modificare'>Select</a></td> 
      </tr>"; 

     } 
    return $view; 


} 

和3個表:

anunturi

  • id_anunt(INT)自動遞增
  • tranzactie(int)
  • 則提示(INT)
  • 用戶(INT)

tranzactie

  • id_tranzactie(int)的自動增量
  • den_tranzactie VARCHAR

尖端

  • id_proprietate(INT)自動遞增
  • den_proprietate VARCHAR

我需要從anunturi每行一個很好的查詢或IDEEA得到事務名稱(den_tranzactie)和proprietate名den_proprietate其中anunturi.user = $用戶。

在此先感謝...

+0

如果表3中的所有數據:'anunturi'代表的廣告羅馬尼亞。 @OP:請以國際上可理解的格式發佈您的問題。 –

+1

@TomaszKowalczyk - 我不認爲這個問題是誠實的。這個問題本身是完全可讀的英文。模式中使用的一些奇怪的名字實際上並沒有什麼區別。 – SchmitzIT

回答

0

試試這個sql查詢

$query="SELECT t1.*, t2.*, t3.* 
     FROM table1 t1 
     LEFT JOIN table2 t2 ON t1.id = t2.foreightkey_id 
     LEFT JOIN table3 t3 ON t1.id = t3.foreightkey_id 
     WHERE t1.user=:code 
"; 

您可以使用INNER JOIN只接收行的女巫都表中的數據。例如

$query="SELECT t1.*, t2.*, t3.* 
      FROM table1 t1 
      INNER JOIN table2 t2 ON t1.id = t2.foreightkey_id 
      INNER JOIN table3 t3 ON t1.id = t3.foreightkey_id 
      WHERE t1.user=:code 
    "; 

,或者如果你想獲得從Table 1和Table您想連接,並從只有那種連接

$query="SELECT t1.*, t2.*, t3.* 
       FROM table1 t1 
       INNER JOIN table2 t2 ON t1.id = t2.foreightkey_id 
       LEFT JOIN table3 t3 ON t1.id = t3.foreightkey_id 
       WHERE t1.user=:code 
     "; 
+0

謝謝你的描述幫助我! –

+0

我很高興。你可以upvote我或選擇我的答案 –

0

是這樣的嗎?

' 
SELECT t.den_tranzactie, tip.den_proprietate 
FROM 
anunturi a 
JOIN tranzactie t ON a.tranzactie = t.id_tranzactie 
JOIN tip ON a.tip = tip.id_proprietate 
WHERE a.user =:code 
+0

你已經在你的第二個連接 – danielpsc

+0

@danielpsc有一個流浪方括號 - 謝謝,固定它:) – SchmitzIT

+0

SchmitzIT查詢不工作 –