gpt4 book ai didi

php - 如何使用 2 个 MySQL 查询动态选择有限数量的项目?

转载 作者:行者123 更新时间:2023-12-01 00:09:53 27 4
gpt4 key购买 nike

在我的 Web 应用程序的主页上,我将显示有限数量的项目。为了显示这些特定项目,我有来自 2 个不同表的 2 个查询:

  • “table1”包含我的应用程序的所有项目的列表
  • “table2”包含一个列,用作与“table1”中具有相同 id 的某些项目的引用 id

这让我可以选择要在主页上显示的项目。

我有 2 个问题:

  • $t1_items = DB::fetch("SELECT * FROM 'table1'");
  • $t2_items = DB::fetch("SELECT * FROM 'table2'");

我有 2 个 foreach 循环遍历每个表,并将“table2”中的 id 与“table1”中的每个项目进行比较。如果两个表中的 ID 匹配,它将在主页上显示该项目。

这允许我通过更改“table2”中每个项目的引用 ID 来选择要在主页上显示的项目。

这是我的 foreach 循环代码:

<?php   
foreach ($t1_items as $i => $t1_item) {
foreach ($t2_items as $i => $t2_item) {
if ($t1_item->id == $t2_item->ref_id) {
echo $t1_item->title;
}
}
}
?>

这是表结构:

表 1:position_name - ref_id

表 2:id - title

这段代码工作得很好,唯一的问题是它显然非常低效,因为它必须扫描我的数据库表中的每一个项目,以便只抓取几个选定的项目。

有没有一种方法可以使 $t1_items 仅动态查询与 $t2_items 中的每个引用 ID 具有相同 ID 的项目?我需要经过优化、快速且轻便的东西来支持繁忙的流量。

感谢您的帮助! :)

最佳答案

您是否尝试过将表连接到一个查询中?

即:

select 
t1.*
from table1 t1 inner join
table2 t2 on t1.id = t2.ref_id

这将返回 table1 中的所有行,这些行在 table2 中具有 ref_id=id 的行。

关于php - 如何使用 2 个 MySQL 查询动态选择有限数量的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29120854/

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