2012-08-23 30 views
0

我有两个表user_photosuser_annons,我从两个使用join获取。MYSQL,只有来自colum的具有多个相同值行的唯一id的第一行?

user_annons每行总是有一个唯一的ID,Id列是自动增量,并且随机键列也是唯一的。

但是在user_photos表中可以有多个具有相同随机密钥值的行,并且随机密钥值与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表中的唯一随机key值与第一唯一随机key行user_photos表中提取仅排在一起。

现在代码,然后再显示画面从u ser_annonsuser_annons标题和PRIS,然后不同的画面,但相同的标题和PRIS,因为有一排user_annons但在user_photos两行具有相同的随机密钥值。

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

回答

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"); 
+0

我已经尝试这样做,它只返回1行。我想要所有具有唯一ID的第一行。 –

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将取回最后一个

+0

它不起作用。警告:mysql_fetch_array()期望参数1是资源,布尔在第39行给出的C:\ xampp \ htdocs \ Login_Script \ view.php –

+0

它不起作用,因为你没有根据你的要求修改它,你应该学会使用子查询在加入 –

+0

我曾尝试将其修改为符合我的要求,但仍然无效。 –

相关问题