首页 > 解决方案 > 如何内部连接 ​​2 个 SQL 表,但只从第二个表中获取第一个结果?

问题描述

我正在建立一个页面,您可以在其中租用公寓和东西,每个公寓都有很多图片,所以我制作了 2 张桌子。一个包含所有公寓,一个包含所有图像,我使用外键连接到特定公寓。我想要所有的公寓,但我只想要每间公寓的 1 张图片。

我试图做 LIMIT 1,但它也将公寓限制为 1。

这是我的代码:

$sql = "SELECT bolig_boliger.id AS bolig_id, titel, areal, rooms, 
indflytning, husleje, image
FROM bolig_boliger
INNER JOIN bolig_images ON bolig_boliger.id = bolig_images.bolig_id";

标签: phpmysqlsql

解决方案


一种简单的方法是相关子查询。当然,你还没有展示表格的布局,所以我不得不推测一下哪些列在哪里以及如何识别最新的行。一个合理的猜测是:

SELECT b.id AS bolig_id, titel, areal, rooms, indflytning, husleje, image
FROM bolig_boliger b INNER JOIN
     bolig_images i
     ON b.id = i.bolig_id
WHERE i.id = (SELECT MAX(i2.id) FROM bolig_images i2 WHERE i2.bolig_id = i.bolig_id)

推荐阅读