我正在建立一个页面,您可以在其中租用公寓和其他东西, 每个公寓都有很多图片, 所以我做了2张桌子。一个带有所有公寓,一个带有所有图像,我用外键连接到特定的公寓。 我想要所有公寓,但每间公寓只想要一张图片。
我尝试做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";
答案 0 :(得分:0)
一种简单的方法是相关子查询。当然,您还没有显示表的布局,因此我必须推测哪些列位于何处以及如何标识最新行。一个合理的猜测是:
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)
答案 1 :(得分:0)
加入一个子查询,该子查询返回每个公寓ID一行,而不是整个表。
SELECT b.id, b.titel, b.areal, b.rooms, b.indflytning, b.husleje, i.image
FROM bolig_boliger AS b
JOIN (
SELECT bolig_id, MAX(image) AS image
FROM bolig_images
GROUP BY bolig_id
) AS i ON b.id = i.bolig_id