我有两个表(cars 和 car_images)
cars
----
id
brand
model
...
car_images
----------
id
car_id
name
...
每辆车都可以有多个图像......
用图片选择所有汽车的最佳方式是什么?
这就是我使用原生 PHP PDO 的方式,但我不知道这是否是最好和最快的方式......
$sth = $dbh->query("SELECT * FROM cars");
$sth_images = $dbh->prepare("SELECT * FROM car_images WHERE car_id = :car_id");
while($row = $sth->fetch()){
$sth_images->execute(['car_id' => $row['id']]);
// ...
}
最佳答案
你可以做 LEFT JOIN 这样你也可以得到没有图像的汽车
SELECT * FROM cars LEFT JOIN car_images ON cars.id = car_images.car_id WHERE cars.id = :car_id
更新
如果您需要使用汽车 ID 或汽车图像 ID,以上将无法获得所需的结果。这样会更好:
SELECT car_images.car_id, car_images.id AS image_id, car_images.name FROM cars LEFT JOIN car_images ON cars.id = car_images.car_id WHERE cars.id = :car_id
再次更正:)
关于php - 如何根据另一个选定的行来选择多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42721083/