0

我有两个表user_photosuser_annons我使用join.

user_annons每一行中总是有一个唯一的 id,Id 列是自增的,randomkey 列也是唯一的。

但是user_photos表中可以有多行具有相同的 randomkey 值,并且 randomkey 值与中相同user_annonsuser_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行,以及表中的第一个唯一随机键行user_photos

现在代码首先显示一张图片,然后显示来自 u 的标题和 pris ser_annons,然后显示不同的图片,但来自 的标题和 pris 相同user_annons,因为其中有一行user_annons但有两行user_photos具有相同的 randomkey 值。

那么有没有人可以帮助我?

4

2 回答 2

1

使用限制 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");
于 2012-08-23T07:36:56.070 回答
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 它将获取最后一个

于 2012-08-23T07:43:27.847 回答