mysql - 如何从 MySQL 中 PK 最低的第二个 tbl 中选择 2 个 tbl 但只有 1 行?

标签 mysql groupwise-maximum

结构:

表 1

|car_id(PK)| make  | model | year |
-----------------------------------
|     1    | Toyot | Camry | 1999 |
|     2    | Honda | Civic | 2005 |

表 2

|img_id(PK)| car_id|   img_link    |
------------------------------------
|     1    |    1  |  tcamry1.jpeg |
|     2    |    1  |  tcamry2.jpeg |
|     3    |    1  |  tcamry3.jpeg |
|     4    |    2  |  hcivic1.jpeg |
|     5    |    2  |  hcivic2.jpeg |

我的查询:

SELECT *
FROM cars c
LEFT JOIN imgs g
ON c.car_id=g.car_id
WHERE 1

结果:

|img_id(PK)| car_id| make  | model | year |   img_link    |
-----------------------------------------------------------
|     1    |    1  | Toyot | Camry | 1999 |  tcamry1.jpeg |
|     2    |    1  | Toyot | Camry | 1999 |  tcamry2.jpeg |
|     3    |    1  | Toyot | Camry | 1999 |  tcamry3.jpeg |
|     4    |    2  | Honda | Civic | 2005 |  hcivic1.jpeg |
|     5    |    2  | Honda | Civic | 2005 |  hcivic2.jpeg |

我需要为每辆车获取 1 行,并在 WHERE 子句中包含与同一辆车相关的所有 img_id 中最低的 img_id 值。

我想要的结果:

|img_id(PK)| car_id| make  | model | year |   img_link    |
-----------------------------------------------------------
|     1    |    1  | Toyot | Camry | 1999 |  tcamry1.jpeg |
|     4    |    2  | Honda | Civic | 2005 |  hcivic1.jpeg |

谢谢。

更新:

我需要这些方面的东西:-/

SELECT g.id, c.car_id, c.mc_make, c.mc_model, c.mc_year, c.mc_desc
FROM mycars c
INNER JOIN (SELECT * FROM mycars_gallery g WHERE )
ON c.car_id=g.car_id
WHERE g.id = min(g.id)

最佳答案

尝试:

SELECT MIN(b.img_id), a.car_id, a.make, a.model, a.year, b.img_link 
FROM cars a 
LEFT JOIN imgs b ON a.car_id = b.car_id 
GROUP BY a.car_id, a.make, a.model, a.year ;

演示:http://sqlfiddle.com/#!2/1469f/15 希望这会有所帮助。

关于mysql - 如何从 MySQL 中 PK 最低的第二个 tbl 中选择 2 个 tbl 但只有 1 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18535934/

相关文章:

php - 通过 mysql 更新 ajax 嵌入 php 页面中的调用数据(没有出现错误)

php - 使用mysql中的纬度/经度计算路线长度

mysql - 在perl中按换行符划分数组内容

mysql - 在sql中选择具有一组行的最大值的行

mysql - 查找每个事件的最新时间戳

php - MYSQL-txt文件中的电子邮件列表,从表中删除行

MySQL分组并仅从每个组中选择第一个

php - Laravel 获取最近加入表的日期

Mysql OneToMany 仅连接最近的记录

mysql - SQL 仅选择列上具有最大值的行