我需要一个好的 mysql 查询来接收来自 3 个表的信息


I need a good mysql query to receive information from 3 tables

我有这个功能:

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 张桌子:

阿努图里

  • id_anunt (整数( 自动增量
  • Tranzactie(int(
  • 尖端(整数(
  • 用户(整数(

特兰扎克蒂

  • id_tranzactie(整数(自动增量
  • den_tranzactie瓦尔查尔

提示

  • id_proprietate(整数(自动增量
  • den_proprietate瓦尔查尔

我需要一个好的查询或 ideea 来获取交易名称 (den_tranzactie( 和专有名称den_proprietate从 anunturi 中获取每一行,其中 anunturi.user = $user。

提前感谢...

试试这个 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
    ";

或者,如果您想从表1和表2中获取已连接的所有数据,并且仅从表3中获取已连接的数据

$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
        ";

像这样的东西?

'
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