我得到了我的表叫cars
,而第二个表称为uploads
具有car_id
场,我可以LEFT JOIN
这一点,所以uploads.car_id = cars.id
,问题就来了,和uploads
表,对某些汽车ID不止一个记录,那又怎么样?我必须使用第二个查询在这样的循环?获取多个表数据而不会丢失性能?
$cars = $PDO->query("SELECT * FROM `cars`")->fetchAll();
foreach($cars as $car)
{
$uploads = $PDO->query("SELECT * from uploads WHERE id = " . (int)$car['id'])->fetch();
echo 'My upload file name:' . $uploads['hash'];
}
?它不是一个好主意,因为$cars
查询可能一次返回超过500条记录......所以这将会导致巨大的性能损失。
所以我的问题是,在这种情况下,我能做些什么来防止循环中的查询?
你能解释一下你需要的结果吗?我不明白对不起 – Marc
@Marc,我想在某些car.id的'uploads'表中访问'hash'字段,而不需要为每个车号(查询循环)查询。 – Scott
@Scott在下面看到我的答案,通过一个查询获取所有值:) –