我有以下查詢選擇一個朋友請求腳本,顯示用戶的個人資料圖片,家鄉,用戶標識和已經請求成爲某個用戶的朋友的全名。SQL選擇用戶
SELECT
a.hometown,
a.first_name,
a.uid,
a.last_name,
b.friend_one,
b.friend_two,
b.friend_request_id,
p.thumbnail
FROM
users a,
friend_requester b,
profile_pics p
WHERE
a.uid = b.friend_one
AND b.friend_two = $uid
AND p.uid_fk = $uid
ORDER BY b.created DESC LIMIT 5
我的問題是,而不是返回1個用戶針對friend_requester表中找到每個查詢,我回到3個實例,例如不同的個人資料照片相同的用戶。因此,如果用戶上傳了3倍個人的照片將被保存爲
id=1, profile_pic=profile_pic1.jpg...
id=1 profile_pic=profile_pic2.jpg...
id=1 profile_pic=profile_pic3.jpg...
我得到3個不同的同一用戶的箱子問是朋友與登錄用戶。
隨着Hituptony提到,我想選擇最新插入的圖片,它將來自「創建」列中的'profile_pics'表格。
你需要確保加盟'p'到無論是'a'還是'b'。否則,這是一個交叉連接,它將匹配上一個表中的每一行。 –
gms - 否如果$ uid是一個鍵,則不需要加入它們,您已通過匹配相同的靜態值來保證唯一性。問題是優化器是否會知道這一點。 –