在我的Web应用程序的主页上,我将显示有限数量的项目.我有来自2个不同表的2个查询以显示这些特定项:
这允许我选择要在主页上显示的项目.
我有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;
}
}
}
?>
Run Code Online (Sandbox Code Playgroud)
这是表结构:
表格1: position_name - ref_id
表2: id - title
这段代码工作得非常好,唯一的问题是它显然非常低效,因为它必须扫描我的数据库表中的每一个项目才能只抓取几个选择项.
有没有办法让我$t1_items只能动态查询与每个引用ID相同的id的项目$t2_items?我需要一些优化,快速和轻量级的东西,以支持繁重的流量.
谢谢您的帮助!:)
您是否尝试将表连接到一个查询中?
即:
select
t1.*
from table1 t1 inner join
table2 t2 on t1.id = t2.ref_id
Run Code Online (Sandbox Code Playgroud)
将返回table1包含ref_id=idin 的行中的所有行table2.
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |