我有两张桌子:
bpoint
- >所有房屋的桌子images
- >房子图像表(每个房子最多3个)。这是我的MySQL连接查询,用于获取房屋信息及其图像:
SELECT
bpoint.*, bimages.iURL
FROM
bpoint,
bimages
WHERE
bpoint.pointID = bimages.pointID
AND bimages.pointID = '$tocka'
由于图像行多于房屋行(总是只有一个房屋结果和1-3个图像结果),有没有办法放弃每个图像附带的房屋结果双倍?
答案 0 :(得分:1)
使用GROUP BY
和JOIN
,您可以获得所需的结果;
SELECT bpoint.*, bimages.url FROM bpoint
LEFT JOIN bimages
ON bpoint.id = bimages.pointId
GROUP BY bpoint.id;
答案 1 :(得分:1)
不,除非您使用两个单独的查询,否则无法执行此操作。如果有办法,你会期望结果集看起来像第一个房子的第二个图像?
无论如何,我在这里要做的是在查询中添加一个ORDER BY
子句,以确保来自同一个房子的所有图像都按顺序排列。然后,在PHP显示循环中,如果已经从上一行打印了房子信息,则忽略房屋信息。