我有两个表user_photos
和user_annons
,我使用join
从两个表中获取。
在user_annons
中,每一行始终具有唯一ID,Id列是自动增量,randomkey列也是唯一的。
但是在user_photos
表中,可以有多个行具有相同的randomkey值,randomkey值与user_annons
中的相同。 user_photos
表还有一个自动增量的id列。
我的代码如下所示:
$result = mysql_query("SELECT iname, title, pris
FROM user_annons
JOIN user_photos
ON user_photos.randomkey = user_annons.randomkey
AND user_annons.profile_id='".$profile_id."'
AND user_photos.profile_id='".$profile_id."'");
while ($row2 = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "<a href=\"".$profile_id."/images/".$row2['iname']."\">
<img src=\"".$profile_id."/images/".$row2['iname']."\"></a>";
echo $row2['title'];
echo $row2['pris'];
}
我想要的是获取user_annons
表中唯一具有唯一randomkey值的行,以及user_photos
表中第一个唯一的randomkey行。
现在代码首先显示一张图片,然后显示来自你ser_annons
的标题和pris,然后是user_annons
的相同标题和pris,因为user_annons
中有一行1}}但user_photos
中的两行具有相同的randomkey值。
那么有人可以帮助我吗?
答案 0 :(得分:1)
使用LIMIT 1
$result = mysql_query("SELECT iname, title, pris
FROM user_annons
JOIN user_photos
ON user_photos.randomkey = user_annons.randomkey
AND user_annons.profile_id='".$profile_id."'
AND user_photos.profile_id='".$profile_id."' LIMIT 1");
答案 1 :(得分:0)
SELECT
ua.iname,
ua.title,
ua.pris,
up.profile_id
FROM user_annons as ua
JOIN (select min(id) as up_id , randomkey , profile_id from user_photos) as up ON up.randomkey = ua.randomkey
AND ua.profile_id='".$profile_id."'
AND up.profile_id='".$profile_id."'
使用MIN()将获取第一个匹配行,如果使用MAX,则将获取最后一行