2012-08-23 31 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

我曾嘗試將其修改爲符合我的要求,但仍然無效。 –

相關問題