禁止重复列

时间:2012-09-03 14:04:45

标签: php mysql database

我有两张桌子:

  • bpoint - >所有房屋的桌子
  • images - >房子图像表(每个房子最多3个)。

这是我的MySQL连接查询,用于获取房屋信息及其图像:

SELECT 
    bpoint.*, bimages.iURL
FROM
    bpoint,
    bimages
WHERE
    bpoint.pointID  = bimages.pointID
AND bimages.pointID = '$tocka'

由于图像行多于房屋行(总是只有一个房屋结果和1-3个图像结果),有没有办法放弃每个图像附带的房屋结果双倍?

2 个答案:

答案 0 :(得分:1)

使用GROUP BYJOIN,您可以获得所需的结果;

SELECT bpoint.*, bimages.url FROM bpoint
LEFT JOIN bimages 
       ON bpoint.id = bimages.pointId
GROUP BY bpoint.id;

http://sqlfiddle.com/#!8/5d1fd/3/0

答案 1 :(得分:1)

不,除非您使用两个单独的查询,否则无法执行此操作。如果有办法,你会期望结果集看起来像第一个房子的第二个图像?

无论如何,我在这里要做的是在查询中添加一个ORDER BY子句,以确保来自同一个房子的所有图像都按顺序排列。然后,在PHP显示循环中,如果已经从上一行打印了房子信息,则忽略房屋信息。