php - 如何根据另一个选定的行来选择多行

标签 php mysql

我有两个表(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/

相关文章:

php - 为什么 file_get_contents 比 memcache_get 快?

mysql - 在 bash 中捕获 Mysql 错误

php - 通过 JOIN 在单个查询中查询多个表

php - 使用 while() 生成随机文件名?

Java:Face 无法创建 PoolableConnectionFactory(用户 'root ' @'localhost' 的访问被拒绝(使用密码:YES))异常

php - CakePHP 2.4 使用 bcrypt 登录失败

php - Yii2 xml 文件响应

php - 如何遍历表单中的输入数组?

php - 在 PHP 中打开和关闭 16000 个 Mongo DB 实例

python - 使用 mysql-connector-python 从 mysql 中选择数据