gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 01:13:36 25 4
gpt4 key购买 nike

我有这个功能:

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 (int) 自动递增
  • tranzactie(int)
  • 提示(整数)
  • 用户(整数)

tranzactie

  • id_tranzactie(int)自动递增
  • den_tranzactie varchar

提示

  • id_proprietate(int)自动递增
  • den_proprietate varchar

我需要一个好的查询或想法来获取 anunturi 中每一行的事务名称 (den_tranzactie) 和专有名称 den_proprietate,其中 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
";

关于php - 我需要一个好的 mysql 查询来接收来自 3 个表的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19265689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com