我有两个表需要从中提取记录(classifieds_items 和附件)。分类项目的图像存储在不同的表(附件)中,每个分类可以有多个图像。我只需要为每个分类项目提取一张图像。下面语句的问题是它会复制具有多个图像的项目的结果。
$sql = "SELECT *
FROM classifieds_items
JOIN (attachments) ON (attachments.attach_rel_id = classifieds_items.item_id)
WHERE active = 1
AND open = 1
AND date_expiry > ". time()."
AND attachments.attach_rel_module = 'classifieds'
ORDER BY RAND()
LIMIT 4";
$rs = mysql_query($sql);
if(mysql_num_rows($rs)>0) {
while($row=mysql_fetch_array($rs)) {
$dtl_list .="<div class='fclass'>
<span class='fctitle'><a class='albumlnk' href='#'>".stripslashes($row['name']). '</a></span><br />
<img src="uploads/'.stripslashes($row['attach_thumb_location']).'" /><br />
'.stripslashes($row['price'])."
</div>";
}
}
echo $dtl_list;
最佳答案
在 mysql 中你可以只添加 GROUP BY classifieds_items.item_id
:
`$sql = "SELECT *
FROM classifieds_items
JOIN (attachments) ON (attachments.attach_rel_id = classifieds_items.item_id)
WHERE active = 1
AND open = 1
AND date_expiry > ". time()."
AND attachments.attach_rel_module = 'classifieds'
GROUP BY classifieds_items.item_id
ORDER BY RAND()
LIMIT 4";`
关于php - MySQL连接唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6012235/