我需要使用外部密钥从db中为一行选择一个图像路径,但是我有许多外部密钥“id_ext”的图像。
这是我的php功能代码:
function oferte_speciale() {
$sql="SELECT t1.*, t2.*, t3.*,t4.*,t5.*
FROM anunturi t1
INNER JOIN tip_proprietate t2 ON t1.tip = t2.id_prop
INNER JOIN anunt_preturi t3 ON t1.id_anunt = t3.ext
INNER JOIN anunturi_images t5 ON t1.id_anunt = t5.id_ext ORDER BY `sort` DESC LIMIT 1
INNER JOIN tranzactie t4 ON t1.tranzactie = t4.id_tranzactie
WHERE t1.special=1 ORDER BY `data` DESC LIMIT 14" ;
$stmt = $this->dbh->prepare($sql);
$stmt->execute();
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $result)
{
$pret=strlen($result['pret_normal']);
if($pret==4) $pretul=substr($result['pret_normal'], 0, 1).".".$pretul=substr($result['pret_normal'], 1, 4);
if($pret==5) $pretul=substr($result['pret_normal'], 0, 2).".".$pretul=substr($result['pret_normal'], 2, 5);
if($pret==6) $pretul=substr($result['pret_normal'], 0, 3).".".$pretul=substr($result['pret_normal'], 3, 6);
if($pret==7) $pretul=substr($result['pret_normal'], 0, 2).".".$pretul=substr($result['pret_normal'], 2, 4)
.".".$pretul=substr($result['pret_normal'], 4, 7);
if($pret==8) $pretul=substr($result['pret_normal'], 0, 2).".".$pretul=substr($result['pret_normal'], 3, 5)
.".".$pretul=substr($result['pret_normal'], 5, 8);
if($pret==9) $pretul=substr($result['pret_normal'], 0, 3).".".$pretul=substr($result['pret_normal'], 3, 6)
.".".$pretul=substr($result['pret_normal'], 6, 9);
if($result['tranzactie']=='2') $luna="/luna"; else $luna="";
$special[]='
<li>
<div class="image">
<img src="'.$result['den_imag'].'" alt="" />
<span><a href="#" class="decor">'.$result['den_tranzactie'].' '.$result['den_prop'].' '.$pretul.' €'.$luna.'</a></span>
</div>
</li>';
}
return $special;
}
我该如何解决? 提前谢谢!
答案 0 :(得分:0)
您需要使用GROUP BY
,并且需要将LIMIT设为1.like
WHERE t1.special=1 ORDER BY `data` GROUP BY 't1.ext' DESC LIMIT 1" ;
id_ext
将成为主表t1